zoukankan      html  css  js  c++  java
  • PAT 乙级 -- 1013 -- 数素数

    题目简介

    令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数。

    输入格式

    输入在一行中给出M和N,其间以空格分隔。

    输出格式

    输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。

    输入样例
    5 27

    输出样例
    11 13 17 19 23 29 31 37 41 43
    47 53 59 61 67 71 73 79 83 89
    97 101 103

    思路

    此题数据量太小,只需用最简单的素数定义法即可。

    C++代码样例

    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <iostream>
    #include <cmath>
    
    using namespace std;
    
    int prime[10005];
    
    bool isPrime(int i)
    {
        for(int j = 2; j <= (int)sqrt(i); j++)
        {
            if(i % j == 0)
            {
                return false;
            }
        }
        return true;
    }
    
    int main(void)
    {
        int num = 0;
        int i = 0;
        int begin = 0, end = 0;
        int count = 1;
        memset(prime, 0, sizeof(prime));
        scanf("%d %d", &begin, &end);
        for(i = 2;; i++)
        {
            if(num == end)
            {
                break;
            }
            if(isPrime(i))
            {
                prime[num++] = i;
            }
        }
        for(i = begin - 1; i <= end - 1; i++)
        {
            if(count % 10 != 0)
            {
                if(i == end - 1)
                {
                    printf("%d", prime[i]);
                    break;
                }
                printf("%d ", prime[i]);
                count++;
            }
            else
            {
                printf("%d
    ", prime[i]);
                count++;
            }
        }
        return 0;
    }
  • 相关阅读:
    NYOJ 35
    TOJ 3072
    HDU 1075
    POJ 1028
    TOJ 1153
    TOJ 1036
    POJ 1521
    POJ 3253
    NYOJ 467
    HDU 1671
  • 原文地址:https://www.cnblogs.com/csnd/p/12897029.html
Copyright © 2011-2022 走看看