码迷,mamicode.com
首页 > 其他好文 > 详细

AC日记 - - - 3

时间:2018-01-11 22:20:32      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:质数   函数   main   提示   log   math   gpo   ati   ring   

题目描述

令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

标签:质数   函数   main   提示   log   math   gpo   ati   ring   

原文地址:https://www.cnblogs.com/Jie-Fei/p/8270276.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!