zoukankan      html  css  js  c++  java
  • UVa10539

    http://vjudge.net/problem/UVA-10539

    先打出来sqrt(n)以内的素数表,然后对于每个素数x,他对答案的贡献就是最大的p使x^p<=n,即log(x,n)。注意精度误差。 
    用1..r的减去1..l-1的就是答案。

     1 /*by SilverN*/
     2 #include<iostream>
     3 #include<algorithm>
     4 #include<cstring>
     5 #include<cstdio>
     6 #include<cmath>
     7 #define LL long long
     8 using namespace std;
     9 const int mxn=1200000;
    10 int pri[mxn],cnt=0;
    11 bool vis[mxn];
    12 int num[mxn];
    13 void Pri(){
    14     cnt=0;int i,j;
    15     for(i=2;i<mxn;i++){
    16         if(!vis[i])pri[++cnt]=i;
    17         for(j=1;j<=cnt && i*pri[j]<mxn;j++){
    18             vis[i*pri[j]]=1;
    19             if(i%pri[j]==0)break;
    20         }
    21     }
    22     return;
    23 }
    24 LL query(LL n){
    25     LL ans=0;
    26     int i,j;
    27     for(i=1;i<=cnt && (LL)pri[i]*pri[i]<=n;i++){
    28         ans+=log(n+0.1)/log(pri[i])-1;
    29     }
    30     return ans;
    31 }
    32 int n;
    33 LL l,r;
    34 int main(){
    35     Pri();
    36     int T;
    37     scanf("%d",&T);
    38     while(T--){
    39         scanf("%lld%lld",&l,&r);
    40         printf("%lld
    ",query(r)-query(l-1));
    41     }
    42     return 0;
    43 }
  • 相关阅读:
    创意:网络族谱
    排列组合的要点
    创意:人生记录
    纽康悖论谜题
    发财的要点
    c#4.0协变逆变的理解
    关于开发自我训练课程
    反对继承
    远离疲倦,告别非理性思维
    中国软件正版化的理想模型
  • 原文地址:https://www.cnblogs.com/SilverNebula/p/5891134.html
Copyright © 2011-2022 走看看