怎麼用python判斷乙個數是否是同構數?

時間 2021-06-08 13:39:51

1樓:浪跡天涯學python

手機做答只談思路

利用資料型別轉換講數字問題變成字串比對。將數字平方讓後轉換成字串然後利用索引做切片看與數字本身轉換成字串的量是否相等。這個方法充分利用了python的內建豐富的內建函式

2樓:xufive

先統一下認識:如果乙個整數的平方的右側還是這個整數,則該整數被稱為同構數。用Python判斷乙個數是否是同構數,方法很多,下面是我的第一感覺。

>>>defis_isomo(n

):return

str(n*

n)[-len

(str(n

)):]

==str(n

)再來看看這個函式的效率如何。

>>>import

time

>>>deffind_isomo(m

):t0

=time

.time

()foriin

range(1

,m+1

):if

is_isomo(i

):print(i

)print

(time

.time()-

t0)>>>

find_isomo

(10000)1

562576

376625

9376

0.1338024139404297

找出1萬以內的同構數,耗時0.13秒,還可以接受吧。

3樓:Justin Z

defis_automorphic(n

:int

)->bool

:return(n

**2-n

)%10**

len(

str(n))

==0defis_automorphic(n

:int

)->bool

:s_n2

=str(n

**2)s_n

=str(n

)return

s_n2

.rfind

(s_n)==

len(

s_n2)-

len(

s_n)

感謝你讓我知道了這個概念!

如何用Python判斷乙個數是否是質數?

藍冰 要求不高的話,就用2 3 6篩選。對於1,2,3三個數字特殊處理 所有的素數都在6的倍數的左側或者右側,也即num 6 1 num 6 5,不滿足者不是素數,滿足者繼續驗證 計算sqrt num 從5,11,17,23.開始驗證,每次驗證i和i 2,一旦整除,不是素數 多次篩的時候可以打表。解...

Mathematica 怎麼判斷乙個數能否由兩個兩位數相乘得到?

cvgmt MemberQ Flatten Table i j, ProductOfTwoDigitNumberQ num Integer Block TwoDigitDivisors Divisors num IntersectingQ num TwoDigitDivisors TwoDigitD...

python怎麼輸入乙個數然後把它的每個數倒過來輸出

寫乙個不用轉換成str的版本 from math import log10 ceil defreturn inverse num list x return x 10 i 10fori inrange 0 ceil log10 x 只要直接呼叫即可In 1 return inverse num li...