UVA10539 - Almost Prime Numbers

来源:互联网 发布:网上淘宝刷单是真的吗 编辑:程序博客网 时间:2024/04/29 03:36
#include <iostream>#include <vector>using namespace std;const int maxn=1000000+10;typedef long long ll;typedef unsigned long long llu;int num[maxn]={0};vector<ll> prime;void init(){    for(llu i=2; i*i<maxn; i++)        for(llu j=i*i; j<maxn; j+=i)            num[j]=1;    for(llu i=2; i<maxn; i++)        if(!num[i])            prime.push_back(i);}ll solve(ll n){    ll ans =0;    for(int i = 0; i<prime.size(); i++){        ll u= prime[i] * prime[i];        if(u > n) break;        while(u<=n){            u *= prime[i];            ans++;        }    }    return ans;}int main(){    init();    int T, a, b;    cin>>T;    for(int j = 0; j< T; j++){        ll a,b;        cin>>a>>b;        cout<<(solve(b)-solve(a-1))<<endl;    }    return 0;}

0 0
原创粉丝点击