数字がの場合、a > 0
と一部の場合はx > 1
の場合は、N = a^x
となります。我々は両側と式ログ取ることができ、これを確認するために今整数が電力形式で表現されている
はN
のように表すことができるx
パワーにその数以上の整数としてx
を与える任意の数が存在する場合(2,sqrt(n))
から反復によってそうlog(n)/log(a)=x
なります。続き
は同じ
from math import log,sqrt,floor
n=int(input())
t=floor(sqrt(n))+1
flag=False
for i in range(2,t):
x=log(n)/log(i)
if x==int(x):
print("YESSSSSSSSSSSSS!")
flag=True
break
if not flag:
print("Nooooooooooooooooooo!")
時間の複雑さをチェック私のコードです:O(N)
問題に他の代替/より良い方法はありますか?
これは数学やプログラミングに関する質問ですか? –
私はプログラミングに使うつもりですが、数学の問題として扱うことができます。 – Demonking28
申し訳ありませんが、質問は、数学関連の兄弟姉妹サイトのいずれかに配置する方が適切です。 –