数论-北大-1730

0 views
Skip to first unread message

china_sjc

unread,
Aug 6, 2008, 5:38:15 AM8/6/08
to 中国矿业大学徐海学院算法课程
#include<stdio.h>
#include<math.h>

int main()
{
__int64 n,n1;
int i,result;
double x;
while(scanf("%I64d",&n1)==1)
{
if(!n1)break;
if(n1<0)n=-n1;else n=n1;
result=1;
for(i=1;i<=32;i++)
{
x=pow(n,1/(double)i);//printf("%0.12lf\n",x);
if(fabs(x-(int)x)<0.0000000000001||fabs(x-
(int)x-1)<0.000000000001)
if(n1<0&&i%2==1||n1>0)
result=i;
}
printf("%d\n",result);
}
return 0;
}
Reply all
Reply to author
Forward
0 new messages