文章

5

粉丝

19

获赞

0

访问

722

头像
素数 题解:
P1375 北京航空航天大学机试题
发布于2024年3月26日 02:10
阅读数 134

为什么一直是50%

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int isprime(int n)
{
    int sqt=sqrt(n);
    if(n==1)
        return 0;
    if(n==2)
        return 1;
    for(int i=2;i<=sqt;i++)
    {
        if(n%i==0)
        {
            return 0;
        }
    }
    return 1;
}
int main()
{
    int n;
    scanf("%d",&n);
    int cnt=0;
    int flag=0;
    int t=0;
    int a[100];
    for(int i=1;i<=n;i++)
    {
        if(isprime(i)&&i%10==1)
        {
            flag=1;
            a[t]=i;
       ...

登录查看完整内容


登录后发布评论

3 条评论
今夕何夕12211
2024年3月26日 10:27

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int isprime(int n)
{
    int sqt=sqrt(n);
    if(n==1)
        return 0;
    if(n==2)
        return 1;
    for(int i=2;i<=sqt;i++)
    {
        if(n%i==0)
        {
            return 0;
        }
    }
    return 1;
}
int main()
{
    int n;

    while(scanf("%d",&n)!=EOF)
    {
        int cnt=0;
    int flag=0;
    int t=0;
    int a[100000];

    for(int i=1;i<=n;i++)
    {
        if(isprime(i)&&i%10==1)
        {
            flag=1;
            a[t]=i;
            t++;
        }

    }
    if(flag==0)
        printf("-1");
    else
    {
        for(int i=0;i<t-1;i++)
        {
            printf("%d ",a[i]);
        }
        printf("%d\n",a[t-1]);
    }
    }

    return 0;
}
新代码

 

赞(0)
snake
2024年3月26日 08:53

你最后一次提交66%的原因的是a数组小了,注意看题目数据范围开大一点。

赞(0)

今夕何夕12211 : 回复 snake: 把数组改大了之后还是只有83%的数据通过 这代码哪里还有问题吗 谢谢您!!

2024年3月26日 10:26