Pagini recente » Cod sursa (job #2536399) | Cod sursa (job #2041780) | Cod sursa (job #1816756) | Cod sursa (job #2069188) | Cod sursa (job #1398589)
#include <fstream>
#include <cmath>
#include <vector>
#define mod 9973
#define NMAX 1000001
#define pb push_back
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
bool v[NMAX];
vector <int> prime;
int i, n, nrquiz, d, suma, nr, nrd, putere;
void ciur()
{
int i, j;
v[0]=v[1]=1;
for (i=4; i<=NMAX; i+=2)
v[i]=1;
prime.pb(2);
for (i=3; i<=NMAX; i+=2)
if (v[i]==0)
{
prime.pb(i);
for (j=i+i; j<=NMAX; j+=i)
v[j]=1;
}
}
int ridicare(int x, int y)
{
if (y==0) return 1;
return x*ridicare(x,y-1);
}
int main()
{
ciur();
f>>nrquiz;
while (nrquiz)
{
nrquiz--;
f>>nr;
int aux=nr;
i=0;
suma=1;
nrd=1;
while (prime[i]<=nr)
{
putere=0;
while (aux%prime[i]==0)
{
putere++;
aux/=prime[i];
}
if (putere)
suma*=((ridicare(prime[i],putere+1)-1)/(prime[i]-1))%mod;
nrd*=(putere+1);
i++;
}
if (aux!=1) g<<"2"<<" "<<nr+1<<'\n';
else
g<<nrd<<" "<<suma<<'\n';
}
return 0;
}