Cod sursa(job #2138078)

Utilizator mihaigrozaGroza Mihai mihaigroza Data 21 februarie 2018 12:35:45
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;

ifstream f("ssnd.in");
ofstream g("ssnd.out");

int i,j,s,div,n,p,ii,t,p1;
bool v[1000000];
int main()
{
    for(i=2; i<=1000000; i++)
        for(j=2; j*i<=1000000; j++)
            v[i*j]=1;
    v[1]=1;
    f>>t;
    for(ii=1;ii<=t;ii++)
    {
        div=1;
        s=1;
        f>>n;
        for(i=1;i*i<=n;i++)
        {
            if(v[i]==0)
            {
                p=0;
                while(n%i==0)
                {
                    p++;
                    n=n/i;
                }
               // g<<i<<" "<<p<<endl;
                p++;
                div=div*p;
                s=s*((pow(i,p)-1)/(i-1));
            }
        }
        if(n!=1)
        {
            div=div*2;
            s=s*((pow(n,2)-1)/(n-1));
        }
        if(div==2)
            s=s+1;

        g<<div<<" "<<s<<endl;

    }

}