《C程序设计教程(第四版)——谭浩强》
例题4.9 判断整数是否为素数
代码:
//《C程序设计教程(第四版)——谭浩强》
//例题4.9 判断整数是否为素数
//【数学知识】素数:一个大于1的自然数,如果只能被1和它本身整除,则称该数为素数。
#include <stdio.h>
int main()
{
int x=0;
int judge_number=1;
printf("请输入你想要判断是否为素数的数:\n");
scanf("%d",&x);
if(x<=1)
{
judge_number=0;
return 0;
}
int i=0;
for(i=2;i<(x-1);i++)
{
if(x%i==0)
{
judge_number=0;
break;
}
}
if(judge_number==0)
{
printf("!!!不是素数!!!");
}
else
{
printf("!!!是素数!!!");
}
return 0;
}
运行结果:
调试:
1.调试过程:
2.思路
(1)排除x≤1的所有数,只要这个数x≤1,那么这个数就不是素数;
(2)只要发现这个数x在2~(x-1)中只要有一个数存在x%i=0,那么这个数就是素数。
(3)【优化效率】在2到x½中只要存在x%i=0,那么这个数就是素数。
为什么?
比如:16可以分为(1,16)、(2,8)、(4、4),只要这个数16它在1~16½中没有一个数可以让它整除,那么这个数就是素数。