Pagini recente » Cod sursa (job #1384881) | Cod sursa (job #370475) | Cod sursa (job #2426666) | Cod sursa (job #2816924) | Cod sursa (job #2040865)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int n, t, nr=0, s[100000], p,aux,d,sum=0, partial;
char fr[1000005];
void ciur()
{
nr=0;
for (int i=2; i<=1000000; i++)
{
if (!fr[i])
{
s[nr++]=i;
for (int j=2*i; j<=1000000; j+=i)
fr[j]=1;
}
}
fr[1]=1;
}
void cautarenr()
{
int aux, nr1=1, numar, uz=1;
p=1;
for (int i=0; i<nr && i*i<=t; i++)
{
nr1=1;
if (t%s[i]==0)
{
while (t%s[i]==0)
{
t/=s[i];
nr1++;
}
p*=nr1;
x=i;
while (nr1)
{
if (nr1%2==1)
{
uz*=x;
nr--;
}
else
{
x*=2;
p/=2;
}
}
}
}
if (fr[t]==0)
p*=2;
cout << p << endl;
}
int main()
{
f >> n;
ciur();
for (int i=0; i<n; i++)
{
f>>t;
cautarenr();
}
return 0;
}