Pagini recente » Cod sursa (job #2869619) | Cod sursa (job #1645128) | Cod sursa (job #2869569) | Cod sursa (job #2802186) | Cod sursa (job #2039144)
#include <iostream>
#include <cstdio>
#include <algorithm>
#define NMAX 100005
using namespace std;
int ciur[NMAX];
void ciurEr()
{
for(int i=2; i<=NMAX; ++i)
{
if(ciur[i] == 0)
for(int j= 2*i; j<=NMAX; j+=i)
ciur[j] = 1;
}
}
int nrDivizori(int n)
{
int nrDiv = 1;
int ciurSize = sqrt(n);
if(ciur[n] == 0)
nrDiv = 2;
else
{
for(int i=2; i<=ciurSize; ++i)
{
int nrDivizoriAux = 0;
if(ciur[i] == 0 && n%i == 0)
while(n%i == 0)
{
nrDivizoriAux++;
n/=i;
}
nrDiv *= nrDivizoriAux+1;
}
}
return nrDiv;
}
void solve(int n)
{
printf("%d ", nrDivizori(n));
}
int main()
{
freopen("ssnd.in", "r", stdin);
freopen("ssnd.out", "w", stdout);
int T, n;
scanf("%d", &T);
ciurEr();
for(int i=1; i<=T; ++i)
{
scanf("%d", &n);
solve(n);
}
return 0;
}