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

输入一个整数,如果该数本身是素数,则输出Thisisprimenumber.;否则输出该数除1和它本身的所有因子。例如,输入24输出234612输入7输出Thisispr... 输入一个整数,如果该数本身是素数,则输出This is prime number.;否则输出该数除1和它本身的所有因子。
例如,输入24 输出2 3 4 6 12
输入7 输出This is prime number.
只能用一个主函数int main()
不要分段函数
展开
 我来答
_277282419
2017-02-04 · TA获得超过631个赞
知道小有建树答主
回答量:227
采纳率:100%
帮助的人:124万
展开全部
#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循环和选择结构语句的配合使用了。。。。

更多追问追答
追问
好的 我研究一下 谢谢!!
追答
记得采纳我
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式