视频网站建设 方案东莞网络推广营销
文章目录
- 素数问题
- 素数是什么?
- 代码实现
- 1.素数判断
- 2.取素数
- 总结
素数问题
素数是什么?
素数 (Prime number,又称质数),指在大于1 的 自然数中,除了1和该数自身外,无法被其他自然数整除 的 数(也可定义为只有1与该数本身两个正因数 的 数)。 大于1 的 自然数若不是 素数 ,则称之为合数(也称为合成数)。
代码实现
1.素数判断
#include <stdio.h>int main()
{int n;scanf("%d", &n);int m = 0;for (int i = 2; i < n; i++ ) {if(n % i == 0) //代表这个数会被除1和他本身意外的数整除{m = 1;break;//只要存在一个i满足后面就不用算了}}if (m == 0) //判断{printf("%d是素数\n", n);} else {printf("%d不是素数\n", n);}return 0;
}
2.取素数
如:求100到200间的素数
在这里有一个素数的性质:在10以后的素数的个位只能是1,3,7,9;
我们发现要想精确的利用这个性质比较困难,但我们可以放大一下范围,近似的理解为10以后的素数全是奇数。
同时,我们也都知道奇数是不可能被偶数所整除,于是最终的代码为
#include <stdio.h>int main()
{int n;for (n = 101; n <= 200; n+=2)//利用10以后的素数只能是奇数{int i = 3;while(i < n){if (n%i==0){break;}i+=2;//奇数不可能会被偶数整除}if (i == n)printf("%d\n", n);}
}
总结
以上就是我在面对素数问题的解法,主要还是抓住素数本身的性质来做文章,大家如果有更好的办法也可以互相交流,如果有错误麻烦及时指正。
感谢观看。