51nod 1441 士兵的数字游戏

来源:互联网 发布:web前端后端数据交互 编辑:程序博客网 时间:2024/04/26 07:26

素数筛预处理一下就好了。

#include<bits/stdc++.h>using namespace std;void read(int&a){    char ch;while(!((ch=getchar())>='0')&&(ch<='9'));    a=ch-'0';while(((ch=getchar())>='0')&&(ch<='9'))a*=10,a+=ch-'0';}inline void prin_d(long long x){    if (x > 9)    {        prin_d(x / 10);    }    putchar(x % 10 + '0');    return ;}const long long MAXN=5000500;long long facsum[MAXN],sum[MAXN];int main(){int T,a,b,i,j;memset(facsum,0,sizeof(facsum));sum[0]=sum[1]=0;for(i=2;i<MAXN;i++){if(!facsum[i]){for(j=i;j<MAXN;j+=i){facsum[j]=facsum[j/i]+1;}}sum[i]=sum[i-1]+facsum[i];}read(T);while(T--){read(a);read(b);prin_d(sum[a]-sum[b]);puts("");}}


0 0