80%,大佬们帮忙简化下,感谢,好人一生平安啊。


#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()//我看和已提交的判定方法是一样的,只是他们开始把所有工作量都做了,放进了一个数组里,我想这样不输入之前算时间的话肯定超了啊,因为是最大工作量嘛。。。
{
    long int a, i, j,k,sum=0,m
    scanf("%ld", &a);
    for (k= 1;k <= a; k++)
    {
        scanf("%ld",&m);
    for (i = 2;i <= m; i++)
    {
        if (i==2||i==3)
            sum++;
        else
        {
            for (j = 2;j*j<=i;j++)
            {
                if (i % j == 0)
                    break;
            }
                if(j*j> i)
                    sum++;
        }
    }
   printf("%ld\n",sum);
        sum=0;
    }
    return 0;
}

全部评论
看数据范围,1S时间,时间复杂度最大只允许1e8,O(T*log(n))会超时
点赞 回复 分享
发布于 2020-08-24 09:25

相关推荐

三分入剑:我觉得还是学历问题 如果你真的想要进大厂不想在小厂的话读个211得研究生吧 我感觉简历还没你好呢 我都实习了俩月了 我投了一百多份能投出20多份简历 能面试六七次 我们部门只招研究生了都 现在连9本都很难找到像样的大厂了 你又没打过rm这种 我觉得想要进步的话就考个研究生吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务