zoukankan      html  css  js  c++  java
  • [51NOD1181]质数中的质数(质数筛法)(欧拉筛)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1181

    思路:欧拉筛出所有素数和一个数的判定,找到大于n的最小质数序号p,并且判断p是不是质数,输出这个数。

     1     /*
     2 ━━━━━┒ギリギリ♂ eye!
     3 ┓┏┓┏┓┃キリキリ♂ mind!
     4 ┛┗┛┗┛┃\○/
     5 ┓┏┓┏┓┃ /
     6 ┛┗┛┗┛┃ノ)
     7 ┓┏┓┏┓┃
     8 ┛┗┛┗┛┃
     9 ┓┏┓┏┓┃
    10 ┛┗┛┗┛┃
    11 ┓┏┓┏┓┃
    12 ┛┗┛┗┛┃
    13 ┓┏┓┏┓┃
    14 ┃┃┃┃┃┃
    15 ┻┻┻┻┻┻
    16 */
    17 #include <algorithm>
    18 #include <iostream>
    19 #include <iomanip>
    20 #include <cstring>
    21 #include <climits>
    22 #include <complex>
    23 #include <fstream>
    24 #include <cassert>
    25 #include <cstdio>
    26 #include <bitset>
    27 #include <vector>
    28 #include <deque>
    29 #include <queue>
    30 #include <stack>
    31 #include <ctime>
    32 #include <set>
    33 #include <map>
    34 #include <cmath>
    35 using namespace std;
    36 #define fr first
    37 #define sc second
    38 #define cl clear
    39 #define BUG puts("here!!!")
    40 #define W(a) while(a--)
    41 #define pb(a) push_back(a)
    42 #define Rint(a) scanf("%d", &a)
    43 #define Rll(a) scanf("%lld", &a)
    44 #define Rs(a) scanf("%s", a)
    45 #define Cin(a) cin >> a
    46 #define FRead() freopen("in", "r", stdin)
    47 #define FWrite() freopen("out", "w", stdout)
    48 #define Rep(i, len) for(int i = 0; i < (len); i++)
    49 #define For(i, a, len) for(int i = (a); i < (len); i++)
    50 #define Cls(a) memset((a), 0, sizeof(a))
    51 #define Clr(a, x) memset((a), (x), sizeof(a))
    52 #define Full(a) memset((a), 0x7f7f7f, sizeof(a))
    53 #define lrt rt << 1
    54 #define rrt rt << 1 | 1
    55 #define pi 3.14159265359
    56 #define RT return
    57 #define lowbit(x) x & (-x)
    58 #define onenum(x) __builtin_popcount(x)
    59 typedef long long LL;
    60 typedef long double LD;
    61 typedef unsigned long long ULL;
    62 typedef pair<int, int> pii;
    63 typedef pair<string, int> psi;
    64 typedef pair<LL, LL> pll;
    65 typedef map<string, int> msi;
    66 typedef vector<int> vi;
    67 typedef vector<LL> vl;
    68 typedef vector<vl> vvl;
    69 typedef vector<bool> vb;
    70 
    71 const int maxn = 1000010;
    72 int n, pcnt;
    73 bool isprime[maxn];
    74 int prime[maxn];
    75 
    76 int main() {
    77     // FRead();
    78     Cls(prime); Clr(isprime, true); pcnt = 0;
    79     For(i, 2, maxn) {
    80         if(isprime[i]) prime[++pcnt] = i;
    81         For(j, 1, pcnt+1) {
    82             if(i * prime[j] > maxn) break;
    83             isprime[i*prime[j]] = 0;
    84             if(i % prime[j] == 0) break;
    85         }
    86     }
    87     while(~Rint(n)) {
    88         int p = 1;
    89         while(prime[p] < n) p++;
    90         while(1) {
    91             if(isprime[p]) break;
    92             p++;
    93         }
    94         printf("%d
    ", prime[p]);
    95     }
    96     RT 0;
    97 }
  • 相关阅读:
    简明Python3教程 12.问题解决
    简明Python3教程 11.数据结构
    【SPOJ 694】Distinct Substrings
    【codeforces Manthan, Codefest 17 C】Helga Hufflepuff's Cup
    【CF Manthan, Codefest 17 B】Marvolo Gaunt's Ring
    【CF Manthan, Codefest 17 A】Tom Riddle's Diary
    【SPOJ 220】 PHRASES
    【POJ 3261】Milk Patterns
    【POJ 3294】Life Forms
    【POJ 1226】Substrings
  • 原文地址:https://www.cnblogs.com/kirai/p/5585886.html
Copyright © 2011-2022 走看看