Pagini recente » Cod sursa (job #2470537) | Cod sursa (job #2415802) | Cod sursa (job #1553965) | Cod sursa (job #2863732) | Cod sursa (job #1258418)
#include <fstream>
#define nrmax 100000
#define inf 1000000
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int t,n;
bool v[inf];
int prim[nrmax];
inline void ciur()
{
int i,j,nr=0;
for (i=2;i*i<=inf;i++)
for (j=i*i;j<=inf;j+=i)
v[j]=1;
for (i=2;i<=inf;i++)
if (v[i]==0)
prim[++nr]=i;
prim[nr+1]=inf+1000;
}
inline void solve()
{
int suma=1,nrdiv=1;
f>>n;
if (v[n])
{for (int i=1;prim[i]*prim[i]<=n;i++)
{
int putere=0,val=prim[i],nn=n;
while (nn%prim[i]==0)
{
nn/=prim[i];
putere++;
val*=prim[i];
}
nrdiv*=(putere+1);
suma*=((val-1)/(prim[i-1]));
}
g<<nrdiv<<" "<<suma<<'\n';
}
else
g<<2<<" "<<n+1<<'\n';
}
int main()
{
f>>t;
ciur();
for (int i=1;i<=t;i++)
solve();
f.close();
g.close();
}