Cod sursa(job #1260365)

Utilizator dezenStefan Brasoveanu dezen Data 11 noiembrie 2014 10:40:04
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include<fstream>
#include<cmath>
using namespace std;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
long long n,j,i,v[1000000],c[100000000],a,b,e,d=1,f,p,s=1;
int main()
{
    a=pow(10,6);
    for(i=2;i<=a;i++)c[i]=1;
    for(i=2;i<=a;i++)
    {
       if(c[i])
       for(j=i+i;j<=a;j+=i)c[j]=0;
    }
    in>>n;
    for(i=0;i<n;i++)
    {
        in>>v[i];
        f=0;
        b=0;
        b=sqrt((double)v[i]);
        for(j=2;j<=b;j++)
        {
            if(c[j]==1)
                while(v[i]%j==0)
                {
                    e++;
                    v[i]/=j;
                    f=1;
                }
                d*=(e+1);
                p=pow(j,e+1);
                s*=(p-1)/(j-1);
                e=0;
        }
        if(f==0)
        {
            d=2;
            s=v[i]+1;
        }
        out<<d<<" "<<s<<'\n';
        d=1;
        e=0;
        s=1;
    }
}