XTU OJ 1377 Factorization

#include
int num[1000109];
int c  [1000109];
const int p=1000009; 
int main()
{
    int t;
    scanf("%d",&t);
    for(int i=2;i*i<=p;i++){
        if(num[i]==0){
            for(int j=i*i;j<=p;j+=i) num[j]=1;//标记为合数; 
        }
    } 
     for(int i=2;i<=p;i++){
        if(num[i]==0){
            c[i]=1;
            for(int j=2;j*i<=p;j++){
                c[i*j]++;
            }
        }
        c[i]+=c[i-1];
    }

    while(t--)
    {
        int a,b;
        scanf("%d %d",&a,&b);
        printf("%d\n",c[b]-c[a-1]);    
    } 
    return 0;
} 

你可能感兴趣的:(湘大oj,蓝桥杯,c语言)