Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- vector<bool> flag(1000000, true);
- vector<long long > primes;
- void sieve()
- {
- flag[0] = false;
- flag[1] = false;
- for(long long i = 2; i*i < 1000000; i++)
- if(flag[i])
- for(long long j = 2; i*j < 1000000; j++)
- flag[i*j] = false;
- primes.push_back(2);
- for(long long i = 3; i < 1000000; i += 2)
- if(flag[i])
- primes.push_back(i);
- }
- long long countDivisor(long long n)
- {
- long long divisor = 1;
- long long p=primes.size();
- for (long long i = 0; i <p ; i++)
- {
- if (n % primes[i] == 0)
- {
- long long cnt = 1;
- while (n % primes[i] == 0)
- {
- n /= primes[i];
- cnt++;
- }
- divisor *= cnt;
- }
- }
- return divisor;
- }
- int main()
- {
- sieve();
- long long t;
- cin>>t;
- long long i=1;
- while(t--)
- {
- long long n;
- cin>>n;
- cout<<"Case "<<i<<": "<<countDivisor(n)-1<<endl;
- i++;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement