用线性筛只拿了40分,求助!
查看原帖
用线性筛只拿了40分,求助!
921616
mammal7楼主2024/5/1 10:48
#include <bits/stdc++.h>
using namespace std;
int n;
int prime[101];
bool st[101];
int cnt;
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cin >> n;
    int sum = 0;
    if(n < 2)
    {
        cout << 0 << endl;
        return 0;
    }

    for(int i = 2 ; i <= n ; i ++ )
    {
        if(!st[i])      { sum += i; if(sum > n)  break ; prime[++ cnt] = i;}
        
        for(int j = 1 ; prime[j] <= n / i ; j ++ )
        {
            st[i * prime[j]] = true;
            if(i % prime[j] == 0)       break;
        } 
    }
    for(int i = 1 ; i <= cnt ; i ++ )
        cout << prime[i] << endl;
    cout << cnt << endl;
    return 0;
}
2024/5/1 10:48
加载中...