Pagini recente » Cod sursa (job #608522) | Cod sursa (job #3185615) | Cod sursa (job #1048216) | Cod sursa (job #2580550) | Cod sursa (job #2982335)
#include <bits/stdc++.h>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
unsigned long long n,m,i,j,a,e,d,s,p,maxim;
bitset <1000010> b;
vector <long long> prime;
unsigned long long exponentiere(unsigned long long a,unsigned long long b)
{
if(a==0)
return 0;
if(b==0)
return 1;
unsigned long long x;
if(b%2==0)
{
x=1ll*exponentiere(a,b/2);
x=1ll*(x*x);
}
else
{
x=a;
x=1ll*(x*exponentiere(a,b-1));
}
return 1ll*x;
}
int main()
{
for(i=2; i<=1000000; i++)
{
if(b[i]==0)
{
prime.push_back(i);
for(j=2; i*j<=1000000; j++)
{
b[i*j]=1;
}
}
}
f>>n;
for(i=1; i<=n; i++)
{
f>>a;
m=0;
d=2;
p=1;
s=1;
while(a>1)
{
e=0;
while(a%d==0)
{
e++;
a/=d;
}
if(e)
{
e++;
p=p*(e);
s=(1ll*s*(exponentiere(d,e)-1)/(d-1))%9973;
}
if(d*d>a)
{
d=a;
}
else
{
d=prime[++m];
}
}
g<<p<<' '<<s<<'\n';
}
return 0;
}