Cod sursa(job #1152463)

Utilizator clopotelNeamtu Sergiu clopotel Data 24 martie 2014 19:04:20
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <iostream>
#include <fstream>
#include <math.h>
#define mm 9973
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
long long int t,x;
void ciur(long long int n)
{
    int c=n,nr=0,s=0;
    char b[n+1];
    for(int i=1; i<=n; i++)
    {
        b[i]='1';
    }
    for(int i=3; i*i<=n; i++)
        if(b[i]=='1')
            for(int j=i*i; j<=n; j+=i)
                b[j]='0';
            int i;
    for(i=0; i*i<n; i++)
    {
        if(b[i]=='1')
        {
            if(c%i==0)
                nr+=2,s+=i+c/i;
            if(s>mm)
                s=s%mm;
        }
    }
    if(i*i==n)
        if(b[i]=='1')
        {
            if(c%i==0)
                nr++,s+=i;
            if(s>mm)
                s=s%mm;
        }
    fout<<nr<<" "<<s%mm<<endl;
}
int main()
{
    fin>>t;
    for(int i=0; i<t; i++)
    {
        fin>>x;
        ciur(x);
    }
    return 0;
}