Cod sursa(job #651249)

Utilizator kinda_93kinda asfour kinda_93 Data 20 decembrie 2011 00:47:04
Problema Suma si numarul divizorilor Scor 40
Compilator c Status done
Runda Arhiva educationala Marime 0.63 kb
#include "stdio.h"
#include "malloc.h"

typedef unsigned int DWORD;

DWORD n,i,nr,sum,divizor,count,x,tmp;
FILE *f,*g;

int main()
{
	f = fopen("ssnd.in","r");
	fscanf(f,"%d",&n);
	g = fopen("ssnd.out","w");
	for(i =0; i<n;i++)
	{
		fscanf(f,"%d",&x);
		if(x ==1)
		{
			fprintf(g,"0 0\n");
			continue;
		}
		nr = 1;
		sum = 1;
		divizor = 2;
		while(x!=1)
		{
			tmp = x;
			count = 0;
			while(x%divizor == 0)
			{
				count++;
				x/=divizor;
			}
			nr*=count+1;
			sum*=((tmp/x)*divizor-1)/(divizor-1);
			divizor++;
		}
		fprintf(g,"%d %d\n",nr,sum%9973);
	}
	fclose(f);
	fclose(g);
	return 0;
}