Cod sursa(job #652231)

Utilizator deleted_d347620be487efd0DELETED deleted_d347620be487efd0 Data 23 decembrie 2011 15:50:47
Problema Suma si numarul divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
#include <cmath>
using namespace std;

bool prim(int);
void Nr_Sum_Div(int, int&, int&);

int main()
{
	int i, t, x, d, s;

	ifstream f("ssnd.in");
	ofstream g("ssnd.out");
	f >> t;
	for(i = 0; i < t; i++) 
	{
		f >> x;
		if(prim(x)) g << "2" << " " << (x+1) << endl;
		else
		{
			d = s = 0;
			Nr_Sum_Div(x, d, s);
			g << d << " " << s << endl;
		}
	}
	return 0;
}

bool prim(int x)
{
	auto int i, j;
	for(i = 2, j = sqrt(static_cast<double>(x)); i <= j; i++)
		if(!(x % i))
			return false;
	
	return true;
}

void Nr_Sum_Div(int x, int &d, int &s)
{
	auto int i, j;
	for(i = 2, j = (x >> 1); i <= j; i++)
	{	
		if(!(x % i)) 
		{
			d++;
			s += i;
		}
	}
	d += 2;
	s += (1 + x);
}