C语言打印100 ——200之间的素数
2015-09-27 00:55
375 查看
根据素数定义,只能被1和它本身整除的自然数为素数。利用定义可以循环判断该数除以比它小的每一个自然数(不包括1),如果都不能整除,则这个数就是素数。
由于上述方法效率太低,对此方法进行优化。我们都知道偶数一定不是素数,那只求剩余一般的数。如果一个数是合数,那么它的最小质因数肯定小于等于他的平方根,由合数定理可进一步优化,只需要循环判断该数除以比它的平方根小的每一个自然数(大于1)即可。
C语言代码如下:
由于上述方法效率太低,对此方法进行优化。我们都知道偶数一定不是素数,那只求剩余一般的数。如果一个数是合数,那么它的最小质因数肯定小于等于他的平方根,由合数定理可进一步优化,只需要循环判断该数除以比它的平方根小的每一个自然数(大于1)即可。
C语言代码如下:
#include<stdio.h> #include<math.h> int main() { int m,k,i,count=0; for(m=101;m<=200;m+=2) { k=(int)sqrt(m);/*(int)sqrt(m)将浮点型转为整型*/ for(i=2;i<=k;i++) if(m%i==0)break; if(i>k) { count++; printf("%d ",m); } }printf("\ncount=%d",count); return 0; }一般说来,程序进入循环体后在下次循环判断之前执行循环体里的所有语句,break和continue语句可以终止循环或忽略某些循环。break: 此语句导致程序终止包含它的循环,并进行程序的下一阶段(整个循环后面的语句),即不是跳到下一个循环周期而是退出循环。如果break语句包含在嵌套循环里,它只跳出最里面的循环。continue:循环语句里有此语句时,程序运行到此语句时,不在执行循环体里continue后面的语句而是跳到下一个循环入口处执行下一个循环。如果continue语句包含在嵌套循环语句里,它只影响包含它的最里层的循环。
相关文章推荐
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- C语言查找数组里数字重复次数的方法
- C语言泛型编程实例教程
- C语言中使用lex统计文本文件字符数
- 在C语言中转换时间的基本方法介绍
- C语言进制转换代码分享