打印100-200之间的素数(试除法)
2017-04-29 19:40
211 查看
#include<stdio.h> int main() { int i = 0; int j = 0; int count = 0; for (i = 100; i <= 200; i++) { for (j = 2; j < i; j++) { if (i%j == 0) break; } if (j==i) { printf("%d\n", i); count++; } } printf("\ncount = %d\n", count); return 0; }
此程序如果还想在去更好的运行,我们还可以采取一下小小的优化,不妨去观察一下代码整理出:
1.在给i从100赋值的时候,我们找的是素数,所以从101开始,偶数肯定不为素数,所以我们对i采取i+=2,
2.我想去采用开平方来减少一半运算,如果一个数X不为素数,那么X肯定是由两个因子想乘得到的,其中两个因子必有一个小于等于X的开平方,所以我们只需要判断那个小一点的数,这样我们就需要采取算数头文件.优化代码如下:
#include<stdio.h> #include<math.h> int main() { int i = 0; int j = 0; int count = 0; for (i = 101; i <= 200; i+=2) { for (j = 2; j <=sqrt(i); j++) { if (i%j == 0) break; } if (j>sqrt(i)) { printf("%d\n", i); count++; } } printf("\ncount = %d\n", count); return 0; }
相关文章推荐
- 1.打印100~200之间的素数/2.判断1000年-2000年之间的闰年
- C语言打印100 ——200之间的素数
- 打印100~200之间的素数
- C语言打印100 ——200之间的素数
- 打印100~200 之间的素数
- 打印100―200之间的素数及优化
- C语言求解素数(质数)的优化:打印100-200之间的素数
- Java中打印100-200之间的素数
- 打印100—200之间的素数及优化
- 将100到200之间的素数打印出来
- C语言求解素数(质数)的优化:打印100-200之间的素数
- 打印100~200 之间的素数,输出乘法口诀表,判断1000年---2000年之间的闰年
- c::从打印100-200之间的素数这个小问题一点点的入坑c语言
- 打印100到200之间的素数
- c语言打印100~200之间的素数
- (T.T) 打印100到200之间的素数
- 打印100~200之间的素数
- 打印100~200 之间的素数
- 打印某个区间之间的素数,并输出素数的个数。如100-200
- 简单程序2——打印100~200 之间的素数