zoukankan      html  css  js  c++  java
  • Codeforces 327B-Hungry Sequence(素数筛)

    B. Hungry Sequence
    time limit per test
    1 second
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    Iahub and Iahubina went to a date at a luxury restaurant. Everything went fine until paying for the food. Instead of money, the waiter wants Iahub to write a Hungry sequence consisting of n integers.

    A sequence a1a2, ..., an, consisting of n integers, is Hungry if and only if:

    • Its elements are in increasing order. That is an inequality ai < aj holds for any two indices i, j (i < j).
    • For any two indices i and j (i < j)aj must not be divisible by ai.

    Iahub is in trouble, so he asks you for help. Find a Hungry sequence with n elements.

    Input

    The input contains a single integer: n (1 ≤ n ≤ 105).

    Output

    Output a line that contains n space-separated integers a1 a2, ..., an (1 ≤ ai ≤ 107), representing a possible Hungry sequence. Note, that each ai must not be greater than 10000000 (107) and less than 1.

    If there are multiple solutions you can output any one.

    Sample test(s)
    input
    3
    
    output
    2 9 15
    
    input
    5
    
    output
    11 14 20 27 31
    题意:要求生成一个含n个数的数列,对于数列要求:1.升序。2.数列中的随意两个数互质。
    这尼玛就是要输出素数嘛。

    #include <iostream>
    #include <algorithm>
    #include <cstring>
    #include <cstdio>
    #include <cctype>
    #include <cstdlib>
    #include <set>
    #include <map>
    #include <vector>
    #include <string>
    #include <queue>
    #include <stack>
    #include <cmath>
    using namespace std;
    const int INF=0x3f3f3f3f;
    #define LL long long
    int prime[10000010],vis[10000010],num;
    void init()
    {
    	memset(vis,1,sizeof(vis));
    	num=0;
    	for(int i=2;i<10000000;i++)
    	{
    		if(vis[i])
    		{
    			prime[num++]=i;
    			for(int j=2;j*i<10000000;j++)
    				vis[j*i]=0;
    		}
    	}
    }
    int main()
    {
        init();
        int n;
        while(~scanf("%d",&n))
    	{
    		for(int i=0;i<n;i++)
    			if(i!=n-1)
    			printf("%d ",prime[i]);
    		    else
    			printf("%d
    ",prime[i]);
    	}
    	return 0;
    }

    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    面试中AOP这样说,面试官只有一个字:服!
    Spring第三天,详解Bean的生命周期,学会后让面试官无话可说!
    Spring第二天,你必须知道容器注册组件的几种方式!学废它吊打面试官!
    C#一些基础知识回顾
    关闭WiN10自动更新和后台程序。
    python脚本显示运行进程
    选择pyqt5理由
    anaconda3下64位python和32位python共存
    爬取百度搜索信息
    python尝试windows在用端口
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4642809.html
Copyright © 2011-2022 走看看