在线等!急!!求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()
不要分段函数 展开
例如,输入24 输出2 3 4 6 12
输入7 输出This is prime number.
只能用一个主函数int main()
不要分段函数 展开
1个回答
展开全部
#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循环和选择结构语句的配合使用了。。。。
更多追问追答
追问
好的 我研究一下 谢谢!!
追答
记得采纳我
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询