Cod sursa(job #1644913)

Utilizator IstrateSamuelIstrate Samuel IstrateSamuel Data 10 martie 2016 10:15:49
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;

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

bool prim (int x)
{
    if(x<2)
        return 0;
    else
        for (int d=2; d*d<=x; d++)
            if(x%d==0)
            return 0;
    return 1;
}

void nrdivizori (int x)
{
    int p, nr, d, s;
    p=1; d=2, s=1;
    while (x!=1)
    {
        nr=0;
        while (x%d==0)
        {
            nr++;
            x/=d;
        }
        p*=(nr+1);
        s*=(pow(d, nr+1)-1)/(d-1);
        d++;
    }
    if(prim(x)==0)
        s++;
    g << p << ' '<< s << '\n';
}

int main()
{
    float n, t, i;
    f >> t;

    for (i=1; i<=t; i++)
    {
        f >> n;
        nrdivizori(n);
    }


}