1084: 用筛法求之N内的素数

题目

原题描述



问题 1084: 用筛法求之N内的素数。

时间限制: 1Sec 内存限制: 64MB 提交: 8627 解决: 5112
题目描述
用筛法求之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

提示
无

求素数的4种方法

1,枚举,也就是从2-n一个一个的都试
2,奇数枚举,偶数(除2以外)肯定不是素数,直接排除
3,从2—n/2
4,从2—sqrt(n)
在这里用3,4解决该问题

2—n/2

//用筛选法求N以内的素数
#include<iostream>
using namespace std;
int main()
{
    int a,i,aa=2;
    cin>>a;
    if(a==2)
        cout<<2<<endl;
    else
    {
        while(aa<a)
        {
             for(i=2;i<=aa/2;i++)
            {
                if(aa%i==0)
                    break;
            }
            if(i==aa/2+1)
            cout<<aa<<endl;
            aa++;
        }
    }
    return 0;
}

2—sqrt(n)

//用筛选法求N以内的素数
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
    int a,i,aa=2;
    cin>>a;
    if(a==2)
        cout<<2<<endl;
    else
    {
        while(aa<a)
        {
             for(i=2;i<=sqrt(aa);i++)//!!!
            {
                if(aa%i==0)
                    break;
            }
            if(i>sqrt(aa))
            cout<<aa<<endl;
            aa++;
        }
    }
    return 0;
}
发布了36 篇原创文章 · 获赞 3 · 访问量 9787
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 像素格子 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览