c语言程序求200以内的全部素数,求100~200之间的全部素数

求100~200之间的全部素数

分析:

① 要判断一个数是不是素数,首先要知道什么是素数。回忆一下数学里的知识,什么是素数?只能被自身和1整除的正整数是素数。1既不是素数,也不是合数;2是最小的素数,也是唯一一个是偶数的素数。

② 判断一个正整数m是否为素数有多种方法。

方法1:让m依次被2,3,…,m-1除,如果m不能被2~m-1中的任何一个整数整除,则m是素数。

方法2:让m依次被2,3,…,m/2除,如果m不能被2~m/2中的任何一个整数整除,则m是素数。

方法3:让m依次被2,3,…,sqrt(m)除,如果m不能被2~sqrt(m)中的任意一个整数整除,则m为素数。sqrt(m)为m的平方根。

其中最后一种方法判断速度最快,因此这里采用最后一种方法。

③ 判断一个整数是不是素数,由于需要一次一次地做除法,所以要使用循环。

程序如下:

#include "math.h"

main( )

{ int m,i,k,n=0;

for(m=101; m<=200; m+=2)

{ k=sqrt(m);

for (i=2;i<=k;i++)

if (m%i==0) break;

if (i>k)

{printf("%5d",m);

n=n+1;

if (n%10==0) printf("\n");

}

}

}

运行结果为:

101 103 107 109 113 127 131 137 139 149

151 157 163 167 173 179 181 191 193 197

199

请思考:请编程求2000以内的所有素数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值