《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½中没有一个数可以让它整除,那么这个数就是素数。