Pagini recente » Cod sursa (job #2074421) | Cod sursa (job #2493414) | Cod sursa (job #561906) | Cod sursa (job #1283558) | Cod sursa (job #2631851)
#include <fstream>
using namespace std;
bool ciur[1000005];
int prime[1000005];
int main()
{
ifstream cin("ssnd.in");
ofstream cout("ssnd.out");
ciur[0]=ciur[1]=1;
for(int i=2;i*i<=1000000;i++)
{
if(ciur[i]==0)
{
for(int j=i*i;j<=1000000;j+=i)
{
ciur[j]=1;
}
}
}
int poz=0;
for(int i=2;i<=1000000;i++)
{
if(ciur[i]==0)
{
prime[poz]=i;
poz++;
}
}
int n,cnt1=0,cnt2=0,cnt3=0;
long long a;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a;
long long sum=1,d=prime[0],cnt=0,ca=a,put=1,poz=0,nrdiv=1;
while(a>1&&1LL*d*d<=a)
{
cnt=0;
put=1;
while(a%d==0)
{
cnt++;
a/=d;
put*=d;
}
put*=d;
nrdiv*=(cnt+1);
if(cnt!=0)
{
sum*=(put-1)/(d-1);
}
poz++;
d=prime[poz];
}
if(a>1)
{
put=1LL*a*a;
sum*=(put-1)/(a-1);
nrdiv*=2;
}
cout<<nrdiv<<" "<<sum%9973<<'\n';
}
return 0;
}