求 1-N 的所有素数 (c++实现)

要求:求 1-N 所有的素数

素数定义:在大于1的自然数中,除了1和它本身以外不再有其他因数

思路:对于 1-N 中的某个数 k,判断 k 在 2- (k-1)中是否有数 j 满足 k%j==0,若有,则 k 不为素数;若没有则 k 为素数。

 

代码:


#include
#include

using namespace std;

int main()
{
    int n;
    cin>>n;
    
    int num=0,k;
    vector s;
    for(int i=2;i<=n;i++)
    {
        int flag=1;
        for(int j=2;j<=i-1;j++)
        {   
            k=i%j;
            if(k==0)
            {
                flag=0;
                break;
            }
        }
        if(flag==1)
        {
            s.push_back(i);
        }
        
    }
    num=s.size();
    int total=0,sc=0,en=num-1;
    while(sc<=en)
    {
        if((s[sc]+s[en])==n)
        {
            sc++;
            en--;
            total++;
         }
        else if((s[sc]+s[en])         {
            sc++;
        }
        else if((s[sc]+s[en])>n)
        {
            en--;
        }
    }
    cout<     return 0;
}

你可能感兴趣的:(C++,数据结构与算法)