2024年5月1日发(作者:)
C 使用筛选法求100以内的素数
C++使用筛选法求100以内的素数,具体问题分析及其代码如下:
【问题分析】
我们可以把100个数看作是沙子和石子,素数是石子,非素数的是沙子,弄个筛子,将沙子筛掉,剩下的就
是素数。
1至100这些自然数可以分为三类:
(1) 单位数:仅有一个数1.
(2) 素数:这个数大于1,且只有它本身和1这样两个正因数。
(3) 合数:除了1和他自身以外,还有其他的正因数。
【代码如下】
/********************************************************
/* 程 序 名:素数筛选
/* 编程时间:2009年7月27日
/* 主要功能:求素数
*********************************************************/
#include
using namespace std;//编译命令
#include
const int MAX=100;//定义常量MAX
int main()//主函数
{
int prime[MAX+100]={0};//定义变量并初始化
int i,j,k=sqrt(MAX);
for(i=2; i<=k; i++)//枚举筛数
{
if(prime[i]==0)//如果这个数没被筛,就看看
{
j=i*2;//将原数扩大二倍初始化给j
do
{
prime[j]=1;//将j筛掉
j+=i; //再扩大一倍
}
while(j<=MAX);//直到最大
}
}
for(i=2; i<=MAX; i++)
{
if(prime[i]==0)//循环输出
cout<
}
cout< return 0;//主函数结束 } 【运行结果】
发布者:admin,转转请注明出处:http://www.yc00.com/news/1714573387a2472718.html
评论列表(0条)