Cod sursa(job #2192157)

Utilizator mihaicosmin2011Mihai Cosmin mihaicosmin2011 Data 4 aprilie 2018 20:47:16
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <bits/stdc++.h>
using namespace std;
long long n, x, i;
long long sumdiv(long long nr)
{
    long long s = 0, d;
    for(d = 1; d * d <= nr; d ++)
    if(nr % d == 0) s = s + d + nr / d;
    if(d * d == nr) s = s + d;
    return s;
}
long long nrdiv(long long numar)
{
    long long d, ct = 0;
    for(d = 2; d * d <= numar; d ++)
        if(numar % d == 0) ct ++;
    ct = ct * 2;
    if(d * d == numar) ct ++;
    return ct;
}
long long prim(int a)
{
    long long j;
    if(a == 0 || a == 1) return false;
    for(j = 2; j * j <= a; j ++) return false;
                    return true;
}
int main()
{
    ifstream fin("ssnd.in");
    ofstream fout("ssnd.out");
    fin >> n;
    for(i = 1; i <= n; i ++)
     {
         fin >> x ;
     if(prim(x))
     {
         fout << "2" << " " << x+1;
         fout << endl;
     }
     else fout << nrdiv(x) << " " << sumdiv(x);
     fout << endl;
     }
    return 0;
}