UVA 10539(p343)----Almost Prime Numbers

来源:互联网 发布:php授权查询系统源码 编辑:程序博客网 时间:2024/05/19 05:41
#include<iostream>#include<cstdio>#include<cmath>#include<cstring>using namespace std;const int maxn=1000000;typedef long long LL;int prime[maxn+50],u[maxn+50],num,n;LL l,r;void get(){    num=1;    memset(u,true,sizeof(u));    for(int i=2;i<maxn;i++)    {        if(u[i]) prime[num++]=i;        for(int j=1;j<num;j++)        {            if(i*prime[j]>maxn) break;            u[i*prime[j]]=false;            if(i%prime[j]==0) break;        }    }    //for(int i=1;i<=num;i++) cout<<i<<" "<<prime[i]<<endl;}int main(){    get();    scanf("%d",&n);    for(int i=0;i<n;i++)    {        scanf("%lld%lld",&l,&r);        LL ans=0;        for(int i=1;i<num;i++)        {            for(int j=2;j<=40;j++)              {                  LL temp=pow(prime[i],j);                  //cout<<temp<<endl;                  if(temp>=l&&temp<=r) ans++;                  if(temp>r) break;              }        }        printf("%lld\n",ans);    }    return 0;}

0 0
原创粉丝点击