Cod sursa(job #478555)

Utilizator marius21Marius Petcu marius21 Data 19 august 2010 09:42:00
Problema Suma si numarul divizorilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <cstdio>
#include <cstdlib>
#define MODNR 9973

FILE *fin=fopen("ssnd.in","r");
FILE *fout=fopen("ssnd.out","w");

int put(int a, int b)
{
	int p=1;
	for (int i=(sizeof(int)*8-2); i>=0; i--)
	{
		p=p*p;
		if (b&(1<<i))
			p*=a;
	}
	return p;
}

int main (int argc, char * const argv[]) {
	
	int t;
	fscanf(fin, "%d", &t);
    for (int i=0; i<t; i++)
	{
		int n;
		int s=1,nr=1;
		fscanf(fin, "%d", &n);
		int p=2;
		while (n>1)
		{
			int f=0;
			int put=p;
			while (!(n%p))
			{
				f++;
				n/=p;
				put*=p;
			}
			nr*=f+1;
			s*=(put-1)/(p-1);
			s%=MODNR;
			p++;
		}
		fprintf(fout, "%d %d\n",nr,s);
	}
	fclose(fin);
	fclose(fout);
    return 0;
}