Python與C語言分別解決完全平方數(shù)問題
1 案例
一個(gè)整數(shù),它加上100后是一個(gè)完全平方數(shù),再加上168又是一個(gè)完全平方數(shù),請(qǐng)問該數(shù)是多少?
2 分析
由題意我們可以設(shè)該數(shù)為x ,加100后得到的完全平方數(shù)為再加168后得到的完全平方數(shù)為
。
則:
得:
可以利用的條件:
3 Python實(shí)現(xiàn)
(1)方法一:
假設(shè)這個(gè)數(shù)字是:x
條件一:x+100是一個(gè)完全平方數(shù)
條件二:x+100+168也是一個(gè)完全平方數(shù)
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=' ')
#================結(jié)果================
-99 21 261 1581
Process finished with exit code 0
(2)方法二
其實(shí)可以采用逆向思維:我們可以分別假設(shè):
(1)x+100開平方后的數(shù)字是:a
(2)x+100+168開平方后后的數(shù)字是:b
那么的話就存在如此關(guān)系:
1):
2):
for i in range(0,100): for j in range(0,100): if i**2 - j**2 == 168: print("數(shù)字是:{} ;i = {} ;j = {}".format(j**2 - 100,i,j))
#====================結(jié)果========================
數(shù)字是:-99 ;i = 13 ;j = 1
數(shù)字是:21 ;i = 17 ;j = 11
數(shù)字是:261 ;i = 23 ;j = 19
數(shù)字是:1581 ;i = 43 ;j = 41
Process finished with exit code 0
4 C語言實(shí)現(xiàn)
#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; }
到此這篇關(guān)于Python與C語言分別解決完全平方數(shù)問題的文章就介紹到這了,更多相關(guān)Python 完全平方數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
升級(jí)Python版本后anaconda navigator啟動(dòng)失敗解決方案(最新推薦)
anaconda navigator啟動(dòng)失敗,尤其是重裝不解決問題的,大概率是庫沖突,解決方法也很簡(jiǎn)單,只需要?jiǎng)h掉引起沖突的庫,感興趣的朋友跟隨小編一起看看吧2023-11-11python網(wǎng)頁請(qǐng)求urllib2模塊簡(jiǎn)單封裝代碼
這篇文章主要分享一個(gè)python網(wǎng)頁請(qǐng)求模塊urllib2模塊的簡(jiǎn)單封裝代碼,有需要的朋友參考下2014-02-02Python 如何創(chuàng)建一個(gè)簡(jiǎn)單的REST接口
這篇文章主要介紹了Python 如何創(chuàng)建一個(gè)簡(jiǎn)單的REST接口,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07