C语言菜鸟,一个有关问题小弟我感觉是对的总是不通过啊

C语言初学者,一个问题我感觉是对的总是不通过啊!!!
求使等式1n+6n+7n+17n+18n+23n=2n+3n+11n+13n+21n+22n不成立的最小n值,其中n表示n次方。(n>=1) 
Input 无       Output 求得的最小n值
这是我输的程序:
#include <stdio.h>
#include <math.h>

int main()
{
int n;
n = 1;
while(pow(1,n) + pow(6,n) + pow(7,n) + pow(17,n) + pow(18,n) + pow(23,n) == pow(2,n) + pow(3,n) + pow(11,n) + pow(13,n) + pow(21,n) + pow(22,n))
n = n + 1;
printf("%d\n",n);
return 0;
}
算出来结果是6,我用计算器算的结果都是6.可是结果一直是Wrong Answer啊,到底是哪里出错了……求高手指点啊。
------解决思路----------------------
可能是math.h的问题,你在哪里做题的?
------解决思路----------------------
pow的返回值是浮点数。理论上浮点数用"=="做比较的时候可能有问题,通常的正确做法是两个浮点数相减结果很接近0(比如小于1e-6)就认为他们相等。不过具体到这个例子,不知道是不是这个造成的问题。
试试把结果转换成整数再比较:
while((int)(pow(1,n) + pow(6,n) + pow(7,n) + pow(17,n) + pow(18,n) + pow(23,n)) == (int)(pow(2,n) + pow(3,n) + pow(11,n) + pow(13,n) + pow(21,n) + pow(22,n)))

------解决思路----------------------
也可以试试不用pow这个库函数,自己写个函数计算整数乘方很容易。