Cod sursa(job #1408356)

Utilizator VladuZ1338Vlad Vlad VladuZ1338 Data 29 martie 2015 23:49:54
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <cstdio>

using namespace std;

int n, nr, i, m, j, sol, s, c[1000000], k, p[100000], mod=9973;

void ciur ()
{
    for (i=2; i<=1000000; i++) c[i]=1;
    for (i=2; i<=1000000; i++)
    {
        if (c[i])
        {
            p[++k]=i;
            for (j=i+i; j<=1000000; j+=i) c[j]=0;
        }
    }
}

int main()
{
    freopen ("ssnd.in", "r", stdin);
    freopen ("ssnd.out", "w", stdout);
    scanf ("%d", &nr);
    ciur();
    for (m=1; m<=nr; m++)
    {
        scanf ("%d", &n);
        sol=2; s=(1+n)%mod;
        for(i=1; p[i]*p[i]<=n; i++)
        if (n%p[i]==0) {if (p[i]!=n/p[i]) {sol=sol+2; s=(s+(p[i]%mod)+((n/p[i])%mod))%mod;}
                       else {sol=sol+1; s=(s+(p[i]%mod))%mod;}}
        printf ("%d %d\n", sol, s);
    }
    //for (i=1; i<=10; i++) printf ("%d ", p[i]);
}