Cod sursa(job #2117733)

Utilizator AndaionicaIonica Anda Maria Andaionica Data 29 ianuarie 2018 13:34:20
Problema Suma si numarul divizorilor Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int i,j,nr,prim[1000001],q[1000001],s,t,p;
long long n,x;
int main()
{
    for(i=2;i<=1000000;i++)
        if(prim[i]==0){
            nr++;
            q[nr]=i;
            for(j=2*i;j<=1000000;j+=i)
                prim[j]=1;
        }
    f>>t;
    while(t){
        f>>n;
        nr=1;
        s=1;
        for(i=1;q[i]*q[i]<=n;i++)
            if(n%q[i]==0){
                p=1;
                x=q[i];
                while(n%x==0){
                    p++;
                    x*=q[i];
                }
                nr*=p;n=n*q[i]/x;
                s=(s*(x-1)/(q[i]-1))%9973;
            }
        if(n!=1){
            nr*=2;
            s=(s*(n+1))%9973;
        }
        g<<nr<<" "<<s<<'\n';
        t--;
    }
    return 0;
}