题目描述

用筛法求之N内的素数。

输入

N

输出

0~N的素数

样例输入

100

样例输出

2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97

提示

数组大小动态定义?函数?

来源/分类

C语言 

题目截图:

ACMNO.17C语言-筛法求素数 用筛法求之N内的素数。_for循环


思路:

这个以前就碰到的,要使用两层for循环语句来解决!
for(int i=1;i<s;i++)
{
//cout<<"i开始: "<<i<<endl;
a=0;
for(int j=1;j<i;j++)
{}
}
筛选素数,的条件,不能为自身和1!还不能有因子。
if(i%j==0&&i!=j&&j!=1)
最后输出,不能输出1!
if(a!=1&&i!=1)
{cout<<i<<endl;}
//<<endl<<endl<<"最后: "

代码:

#include<iostream>
using namespace std;
int main()
{
int a,b,s;
cin>>s;
for(int i=1;i<s;i++)
{
//cout<<"i开始: "<<i<<endl;
a=0;
for(int j=1;j<i;j++)
{

if(i%j==0&&i!=j&&j!=1)
{
a=1;
}
//cout<<"j: "<<j<<endl;
}
if(a!=1&&i!=1)
{cout<<i<<endl;}//<<endl<<endl<<"最后: "
}
}

代码截图:

ACMNO.17C语言-筛法求素数 用筛法求之N内的素数。_for循环_02


代码执行截图:

ACMNO.17C语言-筛法求素数 用筛法求之N内的素数。_ 用筛法求之N内的素数。_03


OJ结果:

ACMNO.17C语言-筛法求素数 用筛法求之N内的素数。_C语言-筛法求素数 _04