Pagini recente » Cod sursa (job #2424017) | Cod sursa (job #1713687) | Cod sursa (job #2034070) | Cod sursa (job #2539099) | Cod sursa (job #2505268)
#include <fstream>
#include <cmath>
#define mod 9973
using namespace std;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
long long ciur[10000005];
long long numar[1005];
int t, maxim=0, nr_div=1;
long long sum;
void ciur_E(int n)
{
for(int i=2; i<=n; ++i)
if(ciur[i]==0)
for(int j=2*i; j<=n; j+=i)
ciur[j]=1;
}
void suma(int d, int p)
{
long long prod;
prod=(pow(p,d+1)-1)/(p-1);
sum*=prod;
sum%=mod;
}
void numar_div(int n,int m)
{
int exp=0;
while(n%m==0 && n>1)
{
n/=m;
exp++;
}
if(exp!=0)
{
nr_div*=(exp+1);
suma(exp,m);
}
}
int main()
{
in>>t;
for(int i=1; i<=t; i++)
{
in>>numar[i];
if(numar[i]>maxim)
maxim=numar[i];
}
ciur_E(maxim);
for(int i=1; i<=t; i++)
{
nr_div=1; sum=1;
int sem=0;
int n=numar[i];
if(ciur[n]==0)
{
nr_div=2;
sum+=n;
}
else
for(int j=2; j<=sqrt(n) && sem==0; j++)
{
if(ciur[j]==0)
{
numar_div(n,j);
}
}
out<<nr_div<<" "<<sum<<'\n';
}
in.close();
out.close();
return 0;
}