Cod sursa(job #2287640)

Utilizator razvanalexalex.1983 razvanalex Data 22 noiembrie 2018 10:56:59
Problema Suma si numarul divizorilor Scor 0
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>
#include <cstring>

using namespace std;

ifstream fin("ssnd.in");
ofstream fout("ssnd.out");

int nr_divizori(int nr)
{
    int ok=0, d;
    for(d=1;d*d<nr;d++)
        if(nr%d==0)
        {
            ok++;
            if(d*d<nr)
                ok++;
        }
    if(d*d==nr)
        ok++;
    return ok;
}

int suma_divizori(int nr)
{
    int d;
    long long int s=0;
    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;
}

int main()
{
    int n, x, v[1001];
    fin>>n;
    for(int i=1;i<=n;i++)
         fin>>v[i];
    fout<<"\n";
    for(int i=1;i<=n;i++)
    {
        fout<<nr_divizori(v[i])<<" "<<suma_divizori(v[i])<<"\n";
    }
    return 0;
}