zoukankan      html  css  js  c++  java
  • (SPOJ2)Prime Generator

    Peter wants to generate some prime numbers for his cryptosystem. Help him! Your task is to generate all prime numbers between two given numbers!

    Input

    The input begins with the number t of test cases in a single line (t<=10). In each of the next t lines there are two numbers m and n (1 <= m <= n <= 1000000000, n-m<=100000) separated by a space.

    Output

    For every test case print all prime numbers p such that m <= p <= n, one number per line, test cases separated by an empty line.

    Example

    Input:
    2
    1 10
    3 5
    
    Output:
    2
    3
    5
    7
    
    3
    5
    

    Warning: large Input/Output data, be careful with certain languages (though most should be OK if the algorithm is well designed)

    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int t;
        scanf("%d\n", &t);
        while(t--)
        {
            int n,m;
            scanf("%d %d\n", &n, &m);
            int * primes = new int[m-n+1];  
            for(int i=0;i<m-n+1;++i)
            primes[i] = 0;      //循环全部赋值为0 
    
            for(int p=2;p*p<=m;++p)
            {
                int less = n / p;
                less *= p;    // first number <= N && p divides N
    
                for(int j=less;j<=m;j+=p) 
                 if(j != p && j >= n)
                  primes[j - n] = 1;
            }
    
            for(int i=0;i<m-n+1;++i)
            {
                if(primes[i] == 0 && n+i != 1) //输出除去数字"1" 
                printf("%d\n",n+i);
            }
    
            if(casen)
              printf("\n");
    
            delete [] primes;
        }
    }
  • 相关阅读:
    动态规划之解决01背包问题 【转载】
    暴力搜索解0-1背包问题 【转载】
    回溯法之地图着色
    贪心算法之最小生成树
    贪心算法之最短路径
    HMM隐马尔科夫模型
    变分贝叶斯
    Leetcode好的微博
    HMM隐马尔科夫模型浅析
    向量的协方差矩阵浅析
  • 原文地址:https://www.cnblogs.com/cpoint/p/3021253.html
Copyright © 2011-2022 走看看