Cod sursa(job #1732213)

Utilizator danutbodbodnariuc danut danutbod Data 21 iulie 2016 09:38:10
Problema Suma si numarul divizorilor Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 1.78 kb
#include <cstdio>

const int MOD = 9973;

int T;
long long N;

int main()
{
    freopen("ssnd.in","rt",stdin);
    freopen("ssnd.out","wt",stdout);

    scanf("%d\n", &T);
    while(T--)
    {
        scanf ("%lld\n", &N);
        int nr = 0, s = 0;

        for(long long i = 1; i <= N; ++i)
            if(N % i == 0)
                ++nr,
                s += i,
                s %= MOD;

        printf("%d %d\n",nr, s);
    }
}
////var I divizorii pana x
//#include <fstream>
//#define M 1000001
//#define MOD 9973
//using namespace std;
//ifstream fi("ssnd.in ");
//ofstream fo("ssnd.out");
//long long  i,j,t;
//long long x,k,nrd,sd,d;
//int main()
//{
//
//    fi>>t;
//    for(i=1;i<=t;i++){
//        fi>>x;
//        nrd=0;sd=0;
//        for(d=1;d<=x;d++)
//         if(x%d==0){
//            nrd++;
//            sd+=d;
//            sd=sd%MOD;
//         }
//    fo<<nrd<<" " <<sd%MOD<<'\n';
//    }
//    return 0;
//}
////var I divizorii pana la sqrt(x) si simetrie
//#include <fstream>
//#define M 1000001
//#define Z 9973
//using namespace std;
//ifstream fi("ssnd.in ");
//ofstream fo("ssnd.out");
//int i,j,t;
//long long x,k,nrd,sd,d;
//int main()
//{
//
//    fi>>t;
//    for(i=1;i<=t;i++){
//        fi>>x;
//        nrd=0;sd=0;
//        for(d=1;d*d<=x;d++)
//         if(x%d==0){
//            nrd=nrd+2;
//            sd=sd+d+x/d;
//            sd=sd%Z;
//         }
//         if((d-1)*(d-1)==x){nrd--;sd=sd-(d-1);}
//    fo<<nrd<<" " <<sd%Z<<'\n';
//    }
//    return 0;
//}
//int P[M+1];
//bool pr[M+1];
////ciur
//    for(i=2;i<=M;i++)
//      if(pr[i]==0){
//        for(j=2*i;j<=M;j=j+i)pr[j]=1;
//      }
//    for(i=2;i<=M;i++)
//        if(pr[i]==0)P[++k]=i;
//    //for(i=1;i<=k;i++)fo<<P[i]<<" ";