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

相关推荐

11-29 11:21
门头沟学院 Java
点赞 评论 收藏
分享
球球别再泡了:坏,我单9要了14
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务