内容同问题一样:如何判断一个数是否为另一个数的幂次方,并且另一个数不一定是2。
参考https://blog.csdn.net/Mainhxj/article/details/102143508
解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
#include <stdio.h>
int pf(int a, int b)
{
if(a<1){
return 0;
}else{
while(a%b==0){
a/=b;
}
return a==1;
}
}
void main()
{
int a,b;
printf("输入a:");
scanf("%d",&a);
printf("输入b:");
scanf("%d",&b);
if (pf(a,b))
printf("%d是%d的幂次方",a,b);
else
printf("%d不是%d的幂次方",a,b);
}
int fun(int a,int b)
{
if(a==b)
return 1;
int c = b;
int num = 1;
while(c < a)
{
num++;
c = c*b;
if(c == a)
return num;
}
return 0;
}
void main()
{
printf("请输入两个整数:");
int a,b;
scanf("%d%d",&a,&b);
int r = fun(a,b);
if(r > 0)
printf("%d是%d的%d次方\n",a,b,r);
else
printf("%d不是%d的幂次方\n",a,b);
}