Python與C語言分別解決完全平方數問題
1 案例
一個整數,它加上100後是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少?
2 分析
由題意我們可以設該數為x ,加100後得到的完全平方數為
則:
得:
可以利用的條件:
3 Python實現
(1)方法一:
假設這個數字是:x
條件一:x+100是一個完全平方數
條件二:x+100+168也是一個完全平方數
import math for i in range(-100,2000): if (int(math.sqrt(i+100)))**2 == i+100: if int(math.sqrt(i+268))**2 == i+268: print(i,end=' ')
#================結果================
-99 21 261 1581
Process finished with exit code 0
(2)方法二
其實可以采用逆向思維:我們可以分別假設:
(1)x+100開平方後的數字是:a
(2)x+100+168開平方後後的數字是:b
那麼的話就存在如此關系:
1):
2):
for i in range(0,100): for j in range(0,100): if i**2 - j**2 == 168: print("數字是:{} ;i = {} ;j = {}".format(j**2 - 100,i,j))
#====================結果========================
數字是:-99 ;i = 13 ;j = 1
數字是:21 ;i = 17 ;j = 11
數字是:261 ;i = 23 ;j = 19
數字是:1581 ;i = 43 ;j = 41
Process finished with exit code 0
4 C語言實現
#include "stdio.h" #include "math.h" int main(void) { int x = -100; double y = 0, z = 0; do { y = sqrt(x + 100); z = sqrt(x + 100 + 168); if (y == (int)y && z == (int)z) printf("%d\n", x); x++; } while ((z + y) > 0 && (z + y) <= 168); return 0; }
到此這篇關於Python與C語言分別解決完全平方數問題的文章就介紹到這瞭,更多相關Python 完全平方數內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!