Cod sursa(job #1715257)

Utilizator dcutitoiuCutitoiu Adrian-Nicolae dcutitoiu Data 10 iunie 2016 10:53:30
Problema Suma si numarul divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include <iostream>
#include <fstream>
#include <vector>
#define MAX 1000005

using namespace std;


int main (void) {

    vector<bool> ciur(MAX);

    for(int i = 2; i <= MAX; i++){
        if(ciur[i] == false){
            for(int j = i + i; j <= MAX; j += i)
                ciur[j] = true;
        }
    }

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

    int T, N, S, div, counter;
    in >> T;

    while(T--){
        S = 0;
        counter = 0;
        in >> N;
        if(N==1){
            out << 1 << ' ' << 1 << '\n';
        }
        else{
            div = 1;
            counter = 0;
            while(div * div < N){
                if(N % div == 0){
                    counter += 2;
                    S += div + N / div;
                }
                div++;
            }
            if(div * div == N){
                counter++;
                S += div;
            }
            out << counter << ' ' << S << '\n';
        }
    }
}