zoukankan      html  css  js  c++  java
  • LightOJ1197

    题目链接:https://vjudge.net/problem/LightOJ-1197

    题目大意:

      给你 a 和 b (1 ≤ a ≤ b < 231, b - a ≤ 100000),求出 [a,b] 中所有质数的个数。

    解题思路:

      要找出 [a,b] 中的所有素数,只需要知道 [0,sort(b)] 中的所有素数(在本题中这一部分我们可以打出 [0,1e5] 的素数表),然后用类似素数筛的方法,筛掉 [a,b] 中的所有合数,剩下的就是素数。

    AC代码:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <algorithm>
     5 
     6 using namespace std;
     7 typedef long long ll;
     8 const int maxn=1e5+3;
     9 bool be_prim[maxn],temp[maxn];
    10 ll prim[maxn],cnt;
    11 void init(){
    12     memset(be_prim,true,sizeof(be_prim));
    13     be_prim[0]=be_prim[1]=false;
    14     cnt=0;
    15     for(ll i=2;i<(ll)maxn;i++){
    16         if(be_prim[i]){
    17             prim[cnt++]=i;
    18             for(ll j=i*i;j<(ll)maxn;j+=i)  be_prim[j]=false;
    19         }
    20     }
    21 }
    22 
    23 int main(){
    24     init();
    25     int T;
    26     ll a,b;
    27     scanf("%d",&T);
    28     for(int t=1;t<=T;t++){
    29         scanf("%lld%lld",&a,&b);
    30         if(b<2){
    31             printf("Case %d: 0
    ",t);
    32             continue;
    33         }
    34         if(a<2) a++;
    35         memset(temp,true,sizeof(temp));
    36         ll ans=b-a+1;
    37         for(ll i=0;i<cnt&&prim[i]*prim[i]<=b;i++){
    38             ll st=max(2LL,((a-1)/prim[i]+1))*prim[i];
    39             while(st<=b){
    40                 if(temp[st-a])  ans--,temp[st-a]=false;
    41                 st+=prim[i];
    42             }
    43         }
    44         printf("Case %d: %lld
    ",t,ans);
    45     }
    46     return 0;
    47 }

      

    “这些年我一直提醒自己一件事情,千万不要自己感动自己。大部分人看似的努力,不过是愚蠢导致的。什么熬夜看书到天亮,连续几天只睡几小时,多久没放假了,如果这些东西也值得夸耀,那么富士康流水线上任何一个人都比你努力多了。人难免天生有自怜的情绪,唯有时刻保持清醒,才能看清真正的价值在哪里。”
  • 相关阅读:
    取一定范围的随机数
    小菜学Chromium之OpenGL学习之二
    程序员健康之路
    解密硬件解码关键技术
    Android 图片开发内幕系列第一篇
    你所不知道的html5与html中的那些事第三篇
    如何加密android apk
    linux设备驱动第五篇:驱动中的并发与竟态
    快速调试chromium
    小菜鸟带着梦想学chromium
  • 原文地址:https://www.cnblogs.com/Blogggggg/p/7779462.html
Copyright © 2011-2022 走看看