Cod sursa(job #732107)

Utilizator MichelJumatate Teodor-Mihail Michel Data 9 aprilie 2012 18:16:34
Problema Numere 2 Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<math.h>
#include<fstream>
using namespace std;
int p,a,b,d;
int pr;
int main ()
{
	ifstream f("numere2.in");
	f>>p;
	a=1;
	b=p-1;
	ofstream g("numere2.out");
	if(p==0)
	{
		g<<'0';
		return 0;
	}
	if(p==1)
	{
		g<<'1'<<'\n'<<'1';
		return 0;
	}
	else
	{
		pr=1;
		if(p%2==0)
			pr=0;
		for(d=3;(d*d)<=p&&pr;d=d+2)
			if(p%d==0)
				pr=0;
    }
	if(pr)
	{
		g<<p<<'\n'<<'1';
		return 0;
    }
	if(!pr)
		do
		{
			a++;
			while(double (pow( double (a), double (b)))>p)
				b--;
			if(double(pow(double(a),double(b)))==p)
			{	
				g<<a<<'\n'<<b<<'\n';
				return 0;
			}
		}while( double (pow( double (a), double (b)))<=p);
		
	return 0;
	
}