Cod sursa(job #469527)

Utilizator DEYDEY2Tudorica Andrei DEYDEY2 Data 8 iulie 2010 10:04:49
Problema Suma si numarul divizorilor Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
#include<stdio.h>
#include <math.h>
using namespace std;


int ciur[1000001];
long long n, suma, divi, put;
int t, i, j, k;

int main()
{
	ifstream f("ssnd.in");
	ofstream g("ssnd.out");
	f>>t;
	
	for (i=1; i<=1000000; i++)ciur[i] = 1;
	for (i=2; i*i < 1000000; i++)
		if (ciur[i])
			for (j=2; j*i < 1000000; j++)
				ciur[i*j] = 0;
	
	for (i=1; i<=t; i++)
	{
		f>>n;
		divi= suma=1;
		j = 2;
		while (n>1)
		{
			while(!ciur[j])
				j++;
			put=0;
			while (n%j==0)
			{
				put++;
				n /= j;
			}
			divi*=(put+1);
			suma*=((int(pow(j,put+1))-1)/(j-1));
			j ++;
		}
		g<<divi<<' '<<suma%9973<<'\n';
	}
	
	
	f.close();
    g.close();
	return 0;
}