1286.有多少素数 SDNUOJ 1286

Description
给你很多的正整数,只是为了找出有多少素数。
Input
有很多的测试用例,每个测试用例第一行是正整数N,表示要从N个整数中找。每个整数不超过2147483647,其中每个不小于2。
Output
对于每种情况输出素数的个数。
Sample Input
3
2 3 4
Sample Output
2

j * j <= s[i] 就TLE
j <= sqrt(s[i]) 就AC

AC代码

#include <cstdio>
#include <cmath>
#include <algorithm>
#include <iostream>
#include <cstring>
int s[1000];
int main()
{
    int n;
    while(~scanf("%d",&n))
    {
        int sum = 0;
        for(int i = 0; i < n; i++)
            scanf("%d", &s[i]);
        for(int i = 0; i < n; i++)
        {
            int j;
            for(j = 2; j <= sqrt(s[i]); j++)
                if(s[i] % j == 0)
                    break;
            if(j > sqrt(s[i]))
                sum++;
        }
        printf("%d\n", sum);
    }
    return 0;
}

TLE代码

#include <cstdio>
#include <cmath>
#include <algorithm>
#include <iostream>
#include <cstring>
int s[1000];
int main()
{
    int n;
    while(~scanf("%d",&n))
    {
        int sum = 0;
        for(int i = 0; i < n; i++)
            scanf("%d", &s[i]);
        for(int i = 0; i < n; i++)
        {
            int j;
            for(j = 2; j * j <= s[i]; j++)
                if(s[i] % j == 0)
                    break;
            if(j * j> s[i])
                sum++;
        }
        printf("%d\n", sum);
    }
    return 0;
}
全部评论

相关推荐

11-18 16:08
福州大学 Java
影流之主:干10年不被裁,我就能拿别人一年的钱了,日子有盼头了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-27 10:46
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务