在线等!急!!求C语言的大神帮我编下这道题的代码!!!

输入一个整数,如果该数本身是素数,则输出This is prime number.;否则输出该数除1和它本身的所有因子。
例如,输入24 输出2 3 4 6 12
输入7 输出This is prime number.
只能用一个主函数int main()
不要分段函数

#include<stdio.h>
#include<math.h>
int isPrime( int num )  
{  
double tmp;
int i;
     //两个较小数另外处理  
     if(num ==2|| num==3 )  
                     return 1 ;  
     //不在6的倍数两侧的一定不是质数  
     if(num %6!= 1&&num %6!= 5)  
                     return 0 ;  
     tmp =sqrt(num);  
     //在6的倍数两侧的也可能不是质数  
     for(i= 5;i <=tmp; i+=6 )  
if(num %i== 0||num %(i+ 2)==0 )  
 return 0 ;  
//排除所有,剩余的是质数  
     return 1 ;  
}
int main(void)
{
int i;
int num;
printf("输入一个整数");
while(!scanf("%d", &num)) 
{
printf("输入有误!程序退出!");
exit(-1);
}
if(isPrime(num)) {
printf("This is prime number!");
}else{
for(i = 2; i < num; i++)
if(num % i == 0)
printf("%d ", i);
}
return 0;
}

自己看看吧其中判断素数的算法是从网上找的效率比较高了。

其实也除了算法之外 ;也是考了你for循环和选择结构语句的配合使用了。。。。

追问

好的 我研究一下 谢谢!!

追答

记得采纳我

😄

温馨提示:答案为网友推荐,仅供参考
相似回答