AC日记 - - - 3

Posted jie-fei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AC日记 - - - 3相关的知识,希望对你有一定的参考价值。

题目描述

令P[i](i=0,1,2,...) 表示第i个质数。给出两个正整数M和N(1 <= M <= N <= 5*10^5)。你来输出从P[M] 到P[N]的所有质数。

输入

输入包括多组测试用例,至EOF结束。每组测试用例为一行,给出了两个整数M和N。

输出

每组测试用例对应一组输出:从P[M]到P[N]的所有质数。每10个整数输出为一行,并且行尾没有空格。每两组测试用例的输出之间应有一个空行。

样例输入

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

提示

P[500000]=7368787

 

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
static int  p[8000000],su[500000];
void set(void) //函数set既不需要参数,也不会返回数据
{
    int i1, i2, i, j=1;
    for(i1=2;i1<=7368787;i1++)
         {
             if(p[i1]!=0)
                continue ;
             for(i2=i1+i1;i2<=7368787;i2+=i1)
             {
                 p[i2]++;
             }
         }
         for(i=2;i<=7368787;i++)
         {
             if(p[i]==0)
             {
                 su[j]=i;
                 j++;
             }
         }

}
int main()
{

    int m, n;
    int i, t=0, temp;
    set();
    while(scanf("%d %d", &m, &n)!=EOF)
    {
         t=0;
        for(i=m;i<=n;i++)
        {
            if(t%10==0&&t!=0)
                printf("\n");
            if((i-m+1)%10==1)
            {
                printf("%d",su[i]);
                t++;
            }

            else
            {
                printf(" %d",su[i]);
                t++;
            }

        }
        printf("\n\n");
    }
}

  

 

以上是关于AC日记 - - - 3的主要内容,如果未能解决你的问题,请参考以下文章

AC日记——二叉堆练习3 codevs 3110

AC日记 - - - 3

AC日记 - - - 28——中位数

AC日记——爱改名的小融3 codevs 3156

AC日记 - - - 9

AC日记 - - - 25——整数位