1013 数素数 (20)

1013 数素数 (20)


被自己蠢哭,拿1013的题目,提交到1007,提交了一个小时。。。。。

链接 点我


主要是判断是不是素数:

只需要判断n 能否被 2, 3, 4, 5, 。。。。。sqrt(n)整除即可

#include <stdio.h>
#include <math.h>

bool isPrime(int val)
{
    if (val <= 1)
        return false;

    int sqr = (int) sqrt(1.0 * val);
    for (int j = 2; j <= sqr; j++)
    {
        if (val % j == 0)
            return false;
    }

    return true;
}

int result[1000001] = {0};

int main (void)
{
    int val = 0;
    int n, m;
    int i = 0;

    scanf ("%d %d", &n, &m);

    while (1)
    {
        if (isPrime(val) == true)
        {
            i ++;
        }
        if (i >= n)
        {
            break;
        }
        val++;
    }

    for (i = 1; i <= m - n + 1; )
    {
        if (isPrime(val) == true)
        {   
            printf ("%d", val);
            if (i != (m - n + 1))   printf(" ");
            if (i % 10 == 0)    printf ("\n");
            i++;
        }

        val++;
    } 
}
posted @ 2018-06-07 20:05  NaLaEurCAS  阅读(100)  评论(0编辑  收藏  举报