下列给定程序的功能是:读入一个整数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 ) /*自定义函数名,建议在函数名前加int*/
{
int i, m;
m=1;
for(i=2;i<n;i++) /*从2开始循环*/
if (!(n%i)) /*就是如果n可以整除i,执行下面的代码*/
{
m=0;
break;
}
return(m); /*m的值返回是0的话,那就是n不是素数嘛*/
} /*,如果返回1,说明n不可以整除比它小的任何正数(除1),那它就是素数*/
----------------解决方案--------------------------------------------------------
for(j=2;j<k;j++)
if((!(k%j))&&(IsPrime(j))) /*就是k可以整除j,且j是素数,那j就是k的素因子*/
printf(" %4d,",j);
----------------解决方案--------------------------------------------------------
下列给定程序的功能是:读入一个整数k(2<=k<=10000),打印它所有质因子(即所有为素数的因子)。例如,若输入整数2310,则输出:2、3、5、7、11。
#include "conio.h"
#include "stdio.h"
IsPrime ( int n ) 判断一个数n是否为素数,如果不是就返回一个0;如果是就返回1;
{
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))) 如果j是K的一个约束,并且j是素数的话,就输出到屏幕
printf(" %4d,",j);
printf("\n");
}
哪位好心的学友能解释一下这个程序?主要是加粗部分。而且质因子这个词我完全不理解,请详细讲一下,偶数学没学好。。。。。
----------------解决方案--------------------------------------------------------
谢谢各位学长!!
----------------解决方案--------------------------------------------------------