Cod sursa(job #2070790)

Utilizator anisca22Ana Baltaretu anisca22 Data 19 noiembrie 2017 22:10:48
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <bits/stdc++.h>
#define NMAX 1000005
#define MOD 9973

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

int T, K;
int v[NMAX];
long long N;
long long a[NMAX];

int main()
{
    a[++K] = 1;
    for (int i = 2; i <= NMAX; i++)
    {
        if (v[i] == 0)
        {
            a[++K] = i;
            for (int j = i + i; j <= NMAX; j+= i)
                v[j] = 1;
        }
    }
    fin >> T;
    while (T--)
    {
        int S = 0, cnt = 0;
        fin >> N;
        for (int i = 1; a[i] * a[i] <= N; i++)
        {
            if (N % a[i] == 0)
            {
                S = (S + a[i]) % MOD;
                cnt++;
                if (a[i] * a[i] < N)
                {
                    cnt++;
                    S = (S + N / a[i]) % MOD;
                }
            }
        }
        fout << cnt << " " << S << "\n";
    }
    return 0;
}