在 Python 中檢查數字是否為自同構數

Mondo 教育 更新 2024-01-31

同構數意味著該數出現在其平方數的右側。

例如:n = 25, n**2 = 25*25 = 625

給定的數字 25 出現在結果的右側。

因此,25 是乙個同構數。

演算法:

將要檢測的數字儲存在變數 num 中。 使用 str() 函式將給定數字轉換為字串,並使用 len() 函式查詢儲存在變數 lenth 中的給定數字的長度。 計算給定數字的平方並將其儲存在變數 sqr num 中。 使用模運算和 pow() 函式獲取 sqr num 的最後 n 位數字並將其儲存在變數 n 中。 使用 if 條件語句檢查 n 是否等於給定的輸入數字 num。 如果該語句為 true,則給定數字的輸出為同構數。 如果為 false,則給定數字的輸出不是同構數字。

num = 25

lenth = len(str(num))

sqr_num = num**2

n = sqr_num % pow(10, lenth)

if n == num:

print(num, "是乙個同構數。 ")

else:print(num, "不是同構數。 ")

演算法:自定義函式是 automorphic(n),引數 n 是要檢測的數字。 計算 n 的平方,儲存在變數 sqr num 中。 使用 while 迴圈,條件是要檢測的數字為 n > 0。 取 n 和 sqr num 的餘數 10 分別確定餘數結果是否相等。 如果不等於,則函式返回 false。 將 n 和 sqr num 除以 10 並刪除最後一位數字。 繼續 while 迴圈。 經過幾次可整除後,要檢測的數字 n 為 0,while 迴圈結束。 該函式返回 true。 使用 if 語句判斷函式返回的結果。 如果該語句為 true,則給定數字的輸出為同構數。 如果為 false,則給定數字的輸出不是同構數字。

def is_automorphic(n):

sqr_num = n * n

while n:

square_remainder = sqr_num%10

number_remainder = n%10

if square_remainder != number_remainder:

return false

n //= 10

sqr_num //= 10

return true

n = 25

if is_automorphic(n):

print(n, "是乙個同構數。 ")

else:print(n, "不是同構數。 ")

演算法:使用字串切片與三元運算相結合,使用單行**檢測同構數。

n = 25

# n^2 = 625 '625'[-2::]= 25

print("yes" if int(str(n**2)[-len(str(n)):== n else "no")

演算法:使用 endswith() 方法檢查字串是否以指定值結尾。

num = 25

a = str(num)

num1 = num **2

b = str(num1)

if b.endswith(a):

print(num, "是乙個同構數。 ")

else:print(num, "不是同構數。 ")

建立文章並不容易,如果您喜歡這篇文章,請關注、點讚並與您的朋友分享。 如果您有意見和建議,請在評論中給我們反饋。

相關問題答案

    在 Python 中檢查乙個數字是否是 Sunny 數字

    給定乙個數字 n,如果乙個數字的下乙個數字 n 是另乙個數字的正方形數,那麼該數字 n 被稱為乙個陽光數字。演算法 將要檢測的數字儲存在變數 num 中。為給定數字找到下乙個數字 num 並將其儲存在變數 num 中。使用數學sqrt 函式計算 num 的平方根並將其儲存在變數 sqrt num 中...

    如何鍵入數字

    有幾種方法可以在鍵盤上鍵入數字,以下是一些常見的方法 在標準桌面鍵盤上,數字鍵位於主鍵盤區域的頂行,可以直接按下相應的數字鍵進行鍵入。如果要輸入與數字對應的符號,可以先按住shift鍵,然後按相應的數字鍵。如果您使用的是中文輸入法,您可以直接在鍵盤上找到數字鍵進行輸入。以下是在鍵盤上鍵入數字的幾種常...

    成為數字人需要多少錢?

    把自己轉殖成乙個數字人,成就永生 這已經不是預言了。相反,它已成為日常生活中非常流行的應用程式。如數字人直播 數字人導購 數字人客服 數字人員工 數字人警等。所以今天我們要談談成為數字人要花多少錢 很多可能會認為,做乙個數字人需要幾萬元。這個 已經是過去的時代了,數字人服務平台現在在中國已經非常普遍...

    一位70後大學教師,贏得數字醫療IPO

    直通IPO,溫韓文靜 近日,健康國際 以下簡稱 健康 在香港聯交所遞交招股書,申萬巨集源香港和清科資本為其聯席保薦人。招股書顯示,健康是乙個數位化醫療健康服務平台,連線醫療衛生機構 醫務人員和個人使用者,構建線上線下渠道無縫融合的綜合性醫療健康服務平台。十幾年前,羅寧正和合夥人王明一起開啟了健康的創...

    在伯恩茅斯的失利中,他是乙個“哭泣的嬰兒”

    曼聯隊長布魯諾 費爾南德斯表示,在伯恩茅斯的失利中,他是乙個 哭泣的嬰兒 布魯諾 費爾南德斯在週六曼聯 輸給伯恩茅斯的比賽中表現出色後,受到了專家克里斯 薩頓的抨擊。前凱爾特人和切爾西前鋒克里斯 薩頓指責布魯諾 費爾南德斯在週六曼聯 輸給伯恩茅斯的最後階段表現得像個 哭泣的孩子 費爾南德斯在比賽還剩...