求助为什么我这个和第一个测试点结果一样,还是过不了第一个测试点呢?
查看原帖
求助为什么我这个和第一个测试点结果一样,还是过不了第一个测试点呢?
303464
zhs3202669494楼主2021/3/4 16:35
#include<bits/stdc++.h>

using namespace std;

bool judge(int n);

int main()
{
    int n,cnt=0,sum=0,m=2;
    int a[1000];
    cin>>n;

    while(sum<=n)
    {
        if(judge(m))
        {
            a[cnt++]=m;
            sum+=m;
        }
        m++;
    }

    for(int i=0;i<cnt-1;i++)
    {
        cout<<a[i]<<endl<<endl;
    }
    cout<<cnt-1;

    return 0;
}

bool judge(int n)
{
    if(n==2||n==3)
        return true;
    if(n%6!=1&&n%6!=5)
        return false;

    for(int i=5;i<=sqrt(n);i+=6)
    {
        if(n%i==0||n%(i+2)==0)
            return false;
    }

    return true;
}


2021/3/4 16:35
加载中...