如何判断一个数是否为另一个数的幂次方

内容同问题一样:如何判断一个数是否为另一个数的幂次方,并且另一个数不一定是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);
}