Cod sursa(job #1714606)

Utilizator pusi23Faier Andreea pusi23 Data 8 iunie 2016 20:30:15
Problema Suma si numarul divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int t,n;
void ns(int a, int &nd, int &sd)
{
    int d=2,c,p;
    nd=1;
    sd=1;
    while(d*d<=a)
    {
        c=0;
        p=1;
        while(a%d==0)
        {
            c++;
            p=p*d;
            a=a/d;
        }
        nd=nd*(c+1);
        sd=sd*(p*d-1)/(d-1);
        d++;
    }
    if(a>1)
    {
        nd=nd*2;
        sd=sd*(a+1);
    }
}
int main()
{
    int nd,sd;
    f>>t;
    for(int i=1;i<=t;i++)
    {
        f>>n;
        ns(n,nd,sd);
        g<<nd<<" "<<sd;
        g<<endl;
    }
    f.close();
    g.close();
    return 0;
}