re: [ACM 1002] 数字游戏 飛天 2008-08-25 09:29
@dengxp
以上程序是在Dev C++ 4.9.9.2上編譯。
在vs2005里sqrt,pow找不到對應的重載函數,所以要修改一下:
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
#define MAX 50
void solve(int number)
{
int k=sqrt((float)number);
for(int i=k;i>1;--i)
{
int j=2;
bool loop=true;
while(loop)
{
if(pow((float)i,j)==number)
{
cout<<i<<" "<<j<<endl;
return;
}
else if(pow((float)i,j)>number)
loop=false;
else
j++;
}
}
cout<<0<<" "<<0<<endl;
}
int main()
{
int input[MAX];
int len=0;
while((cin>>input[len])&&input[len]!=0)
{
if(input[len]<0||input[len]>pow(10.0,8))
continue;
len++;
}
for(int i=0;i<len;++i)
solve(input[i]);
return 0;
}