Cod sursa(job #2859863)

Utilizator razvan.chChelariu Razvan Dumitru razvan.ch Data 2 martie 2022 08:21:54
Problema Suma si numarul divizorilor Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include<bits/stdc++.h>
#define nmax 1000005
#define mod 9973
#define ll long long

using namespace std;

FILE *in = fopen("ssnd.in","r");
FILE *out = fopen("ssnd.out","w");
int n;

int nrprim(int n)
{
    if(n>2 && n%2==0)
        return 0; //nu e prim
    for(int i=3; i*i<=n; i+=2)
        if(n%i==0)
            return 0;
    return 1;

}
void solve()
{

    fscanf(in,"%d",&n);

    int sum,ans,d=2;
    sum=ans=1;

    if(n>0)
        sum+=n,ans++;
    if(nrprim(n)==0)
    {
        for(d=2; d*d<=n; d++)
        {
            if(n%d==0)
            {
                ans++;
                sum+=d;
                if(d*d<n)
                {
                    ans++;
                    sum+=n/d;
                }
            }
        }
    }
    if(sum>mod)
        sum%=mod;

    fprintf(out,"%d %d\n",ans,sum);

}
int main()
{
    int t;
    fscanf(in,"%d",&t);

    for(int i=0; i<t; i++)
        solve();
}