だから、関数2でnの解は何かを示すプログラムを作りたいと思います。^ n -15 = xtここでnは正の整数で、xtは正の数です。しかし、これは動作しません:sqrt(xt)が正しく動作しないのはなぜですか? ValueError:数学的なドメインエラー
from math import sqrt
n = 0
def is_square(x):
answer = sqrt(x)
return answer.is_integer()
while True:
n += 1
xt = 2^n - 15
if is_square(xt):
print(xt)
エラーは、この氏は述べています:
Traceback (most recent call last):
File "C:/Users/NemPl/Desktop/Python/Python programi/M/P #1.py", line 9, in <module>
if is_square(xt):
File "C:/Users/NemPl/Desktop/Python/Python programi/M/P #1.py", line 4, in is_square
answer = sqrt(x)
ValueError: math domain error
私は '2^n'が本当にあなたが望むものだと疑っています – polku
(1)キャレット'^'は力を計算するのではなく、ビットごとにXORを計算します。力を計算するには '**'を使います。 (2)あなたは無限ループを作りました。 Pythonはエラーが発生するまで続行します。あなたのケースでは、 '2^n-15'がすぐに負になったときに、早く1つを打ちます。これを修正するには、ループを終了するための基準を定義します:if n> 1000:break'。 – Boldewyn