Cod sursa(job #2227639)

Utilizator mihaicosmin2011Mihai Cosmin mihaicosmin2011 Data 1 august 2018 11:43:38
Problema Suma si numarul divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int nrdiv(int nr)
{
    int d = 2, fm, nrd = 1;
    do
    {
        fm = 0;
        while(nr % d == 0)
        {
            nr/= d;
            fm ++;
        }
        if(fm > 0) nrd = nrd * (fm + 1);
        d ++;
        if(nr > 1 && d * d > nr) nrd = nrd * 2, nr = 1;
    }while(nr > 1);
    return nrd;
}
int sum_div(int a)
{
    int d;
    long long s = 0;
    for(d=1;d*d<a;d++)
        if(a%d==0) s=s+d+a/d;
    if(d*d==a) s=s+d;
    return s;
}
int main()
{
    signed long long x, n, i;
    f >> n;
    for(i = 1; i <= n; i ++)
    {
        f >> x;
        g << nrdiv(x) << " " << sum_div(x) << "\n";
    }
    return 0;
}