Pagini recente » aleatoriu | Cod sursa (job #2960157) | Cod sursa (job #615837) | Cod sursa (job #1657595) | Cod sursa (job #458184)
Cod sursa(job #458184)
#include<fstream>
using namespace std;
long t,n[11],maxim;
bool a[1000000];
ifstream f("ssnd.in");ofstream g("ssnd.out");
void fa_ciur()
{
long i,j;
for(i=2;i*i<=maxim;i++)
if(a[i]==0)for(j=2*i;j<=maxim;j+=i)a[j]=1;
}
long putere(long a,long b)
{
long p;
if(b)
if(b%2)return a*putere(a,b-1);
else {p=putere(a,b/2);return p*p;}
else return 1;
}
int main()
{
long i,n2,s,j,e,nr;
f>>t>>n[1];
maxim=n[1];
for(i=2;i<=t;i++){f>>n[i];if(n[i]>maxim)maxim=n[i];}
fa_ciur();
for(i=1;i<=t;i++)
{
nr=s=1;n2=n[i];
for(j=2;j<=n[i];j++)
if(a[j]==0 && n[i]%j==0)
{
e=1;
while(n[i]%j==0){n[i]/=j;e++;}
nr*=e;
s=s*(putere(j,e)-1)/(j-1)%9973;
}
if(nr==1){nr=2;s=1+n2;}
g<<nr<<' '<<s<<'\n';
}
f.close();g.close();
return 0;
}