Pagini recente » Cod sursa (job #2682489) | Cod sursa (job #1277451) | Cod sursa (job #1382224) | Cod sursa (job #2693139) | Cod sursa (job #1821553)
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
#define MAX 1000005
int prim[MAX/3] , k;
bool erathostene[MAX];
void era()
{
for(int i=2;i<MAX-1;i++)
{
if(erathostene[i]) continue;
for(int j=2*i;j<MAX;j+=i)
{
erathostene[j]=true;
}
prim[k++]=i;
}
}
void afisare()
{ int d=2;
long long int n;
in>>n;
int s=n+1 , x=sqrt(n);
for(int i=0;i<k;i++)
{
if(prim[i]>x) break;
if(n%prim[i]==0)
{
int tmp=n/prim[i];
s=(s+prim[i])%9973;
d++;
if(prim[i]!=tmp){
s=(s+tmp)%9973;
d++;
}
}
}
out<<d<<' '<<s<<endl;
}
int main()
{ int t;
in>>t;
era();
for(int i=1;i<=t;i++)
afisare();
in.close();
out.close();
return 0;
}