题目:读入一个整数k(2<=k<=10000),打印它所有的质因子(即所有为素数的因子)
例如:输入整数:2310,则应输出:2、3、5、7、11
【主要理解if(n%i==0)等价于!(n%i)】
代码:
#include<stdio.h>
int IsPrime(int n)
{
int i,m;
m=1;
for(i=2;i<n;i++)
{
// if(n%i==0)
if(!(n%i))
{
m=0;
break;
}
}
return m;
}
int main()
{
int j,k;
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))
//if(k%j==0&&IsPrime(j))
printf("%4d",j);
}
}
运行结果: