Pagini recente » Cod sursa (job #2581244) | Cod sursa (job #2008780) | Cod sursa (job #1712882) | Cod sursa (job #2070680) | Cod sursa (job #2039141)
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
const int NMax = 1000005;
char ciur[NMax];
int prime[NMax], nr_pr;
int N;
void Ciur()
{
for(int i=2; i<=sqrt(NMax); ++i)
ciur[i] = 1;
for(int i=2; i<=sqrt(NMax); ++i)
if(ciur[i])
{
for(int j=i+i; j<=sqrt(NMax); j+=i)
ciur[j] = 0;
}
prime[++nr_pr] = 2;
for(int i=3; i<=sqrt(NMax); i+=2)
if(ciur[i] == 1)
prime[++nr_pr] = i;
}
pair < long long, long long > euclid_extins(long long x, long long y)
{
if(y==0)
{
return {1,0};
}
auto p = euclid_extins(y, x%y);
long long d = x/y;
return {p.second, p.first-d*p.second};
}
int main()
{
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
Ciur();
int t;
fin >> t;
for(int i=1; i<=t; ++i)
{
int x;
fin >> x;
long long sum = 0;
long long nr_divi = 1;
int poz = 1;
while(prime[poz] * prime[poz] <=x )
{
long long nr = 0;
while(x%prime[poz] == 0)
{
++nr;
x/=prime[poz];
}
if(nr>0)
{
nr_divi = 1LL * nr_divi * (nr+1);
}
++poz;
}
if(x != 1)
{ int nr = 1;
nr_divi = 1LL * nr_divi * (nr+1); }
fout << nr_divi << "\n";
}
return 0;
}