有寓意的小说男主名字:学友来解释一下这个编程题(和数学有关系)

来源:百度文库 编辑:高校问答 时间:2024/05/07 07:37:11
下列给定程序的功能是:读入一个整数k(2<=k<=10000),打印它所有质因子(即所有为素数的因子)。例如,若输入整数2310,则输出:2、3、5、7、11。

#include "conio.h"
#include "stdio.h"
IsPrime ( int n )
{
int i, m;
m=1;

for(i=2;i<n;i++)
if (!(n%i))
{
m=0;
break;
}
return(m);
}

main()
{
int j, k;
clrscr();
printf("\nplease enter an integer number between 2 and 10000:");
scanf("%d",&k);
printf("\n\nThe prime factor(s) of %d is(are):",k);
for(j=2;j<k;j++)
if((!(k%j))&&(IsPrime(j)))
printf(" %4d,",j);
printf("\n");
}

哪位好心的学友能解释一下这个程序?主要是加粗部分。而且质因子这个词我完全不理解,请详细讲一下,偶数学没学好。。。。。

IsPrime ( int n ) // 判断n是否为质数
{
int i, m;
m=1;

for(i=2;i<n;i++) //做循环,如果一个数除了1个自身不能被任何数整除,就是质数
if (!(n%i)) // 看看n能不能被比它小的数整除
{
m=0; // 如果有,则m为0
break; // 终止循环
}
return(m); // 返回结果 ,m=0不是质数,=1是质数
}

main()
{
int j, k;
clrscr(); //清屏幕
printf("\nplease enter an integer number between 2 and 10000:");
scanf("%d",&k); //从终端读入一个整数k
printf("\n\nThe prime factor(s) of %d is(are):",k);
for(j=2;j<k;j++) // 对比k小的整数j做循环
if((!(k%j))&&(IsPrime(j))) // k能被j整除并且j是质数
printf(" %4d,",j); //输出j
printf("\n");
}

质因子就是质数的因子
因子呢就是能被它整除的所有数,每个都是它的因子
质数呢就是只能被自己和1整除的数.
质因子理解了吧,就是比如2310的因子,而且是质数!