Cod sursa(job #2002970)

Utilizator whitewolf3131Ursu Laurentiu Cristian whitewolf3131 Data 21 iulie 2017 12:37:29
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <stdio.h>
#include <math.h>
using namespace std;
int main()
{
	FILE *in, *out;
	in = fopen("ssnd.in", "r");
	out = fopen("ssnd.out", "w");
	int t;
	fscanf(in, "%d", &t);
	int n;
	for(int i=0; i<t; i++){
        int nrd=1;
        int sum=1;
        fscanf(in, "%d", &n);
        bool prime=true;
        int cn=n;
        for(int j=2; j*j<=cn; j++){
            int put=0;
            while(n%j==0){
                prime=false;
                n/=j;
                put++;
            }
            if(prime==false){
                nrd*=put+1;
                int aux=pow(j, put+1)-1;
                sum*=aux/(j-1);
            }
            else{
                nrd=2;
                sum=cn+1;
            }
        }
        fprintf(out, "%d %d\n", nrd, sum);
	}
	return 0;
}