Cod sursa(job #493455)

Utilizator b_polarAgape Mihai b_polar Data 18 octombrie 2010 12:40:32
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <stdio.h>
#define DIM 1000005
#define ifile "ssdn.in"
#define ofile "ssdn.out"

char nueprim[DIM];
int prime[DIM];

void ciur();

int main()
{
int N,nr;

freopen(ifile,"r",stdin);
freopen(ofile,"w",stdout);

ciur();
scanf("%d",&N);
while(N--)
	{
        int i,s=0,c=0;
	scanf("%d",&nr);
	for(i=1;i<=prime[0]&&i*i;i++)
		if(nr%i==0)s+=i+nr/i,c+=2;
	if((i-1)*(i-1)==nr)s-=i,c-=1;
        printf("%d %d\n",c,s);		        	
	}
return 0;
}

void ciur()
{
prime[++prime[0]]=1;
for(int i=2;i<=DIM>>1;i+=1+i%2)
	if(!nueprim[i])
		{
                prime[++prime[0]]=i;
		for(int j=i<<1;j<DIM;j++)
			nueprim[j]=1;
                }
}