1.編寫一個函數,其功能是判斷一個數是否是回文數.(所謂回文數,就是從左至右讀和從右至左讀是同一個數,如101).在11~999之間尋找這樣的數,它不僅是回文數,而且它的平方和立方都是回文數.

1.編寫一個函數,其功能是判斷一個數是否是回文數.(所謂回文數,就是從左至右讀和從右至左讀是同一個數,如101).在11~999之間尋找這樣的數,它不僅是回文數,而且它的平方和立方都是回文數.


#include ;";stdio.h";bool ;IsHws(long ;l){long ;a ;= ;l;long ;b ;= ;0;while ;( ;a ;>; ;0 ;){int ;n ;= ;a%10;a=a/10;b ;= ;b*10+n;}return ;l==b;}int ;main(){for ;( ;long ;i=11; ;i<;=999; ;++i ;){if ;( ;IsHws(i) ;&;&; ;IsHws(i*i) ;&;&; ;IsHws(i*i*i) ;){printf(";%d ;";, ;i);}}return ;0;}



證明:四個連續整數的積加上1是一個整數的平方.


設這四個連續整數依次為:n-1,n,n+1,n+2,則(n-1)n(n+1)(n+2)+1,=[(n-1)(n+2)][n(n+1)]+1 =(n2+n-2)(n2+n)+1=(n2+n)2-2(n2+n)+1=(n2+n-1)2.故四個連續整數的積加上1是一個整數的平方.



一個正整數,如果加上100是一個完全平方數,如果加上168,則是另一個完全平方數,則這個正整數是______.


設所求的數為n,由題意,得:n+168=a2…(1)n+100=b2…(2)(1)-(2),得:68=a2-b2=(a+b)(a-b),由於68=1×68=2×34=4×17,只有三種情况,即:①a+b=68,a-b=1;②a+b=34,a-b=2;③a+b=17,a-b=4;因為①a與b沒有整數解,排除;②算出a=18,b=16,所以:n= 182-168=162-10=156;③a與b沒有整數解,排除.綜上,只有n=156,即為所求的數.故答案為:156.