1.プログラムの概要
1.剰余の定理で因数分解をします。
2.2次方程式の解の公式に当てはめます。
3.自分で計算した答えを出力します。
4.2次方程式の平方根の部分を計算してその数が0よりも大きいことを確認してその数が兵法数かどうかを調べます。
2.プログラム
import math
kotae = [] #kotaeを空の配列を代入
x2 = 2 #x2に2を代入
x = 1 #xに1を代入
t = -10 #tに-10を代入
for i in range(2,0,-1): #iに2~0まで-1ずつ減らして繰り返す
if x2 % i == 0: #もしx2をiで割ったあまりが0なら
for y in range(-abs(t),abs(t)): #yにtの絶対値×-1からtの絶対値まで繰り返す
if x2 * (y/i) ** 2 + x * (y/i) + t == 0: #もし(x2×y÷i)^2+x×y÷i+tが0の時
kotae.append([i,y]) #kotaeに[i,y]を追加する
break #for文を抜け出す
print("ア:" + str(kotae[0][0])) #ア:とkotaeの上から1番目,左から1番目を出力する
print("イ:" + str(kotae[0][1] * -1)) #イ:とkotaeの上から1番目,左から2番目×-1を出力する
print("ウ:" + str(kotae[1][1])) #ウ:とkotaeの上から2番目,左から2番目を出力する
x = 5 #xに5を代入する
t = -5 #tに-5を代入する
print("エ:" + str(x)) #エ:とxを繋げた文字を出力する
print("オカ:" + str(x ** 2 - 4 * x2 * t)) #オカ:とx^2-4*x2*tを繋げた文字を出力する
print("キ:" + str(2 * x2)) #キ:と2*x2を繋げた文字を出力する
a = 5 #aに5を代入する
b = 65 #bに65を代入する
c = 2 #cに2を代入する
print("ク:" + str(a)) #ク:とaを繋げた文字を出力する
print("ケコ:" + str(b)) #ケコ:とbを繋げた文字を出力する
print("サ:" + str(c)) #サ:とcを繋げた文字を出力する
print("シ:" + str(math.floor((a + math.sqrt(b)) / c))) #シ:とa+√b÷c の切り捨てを繋げた文字を出力する
c = 0 #cに0を代入する
d = 0 #dに0を代入する
while True: #ずっと
a = 2 #aに2を代入する
b = 4 * c - 3 #bに4×c-3を代入する
e = 2 * c ** 2 - c - 11 #eに2×c^2-c-11を代入する
if b ** 2 - 4 * a * e < 0: #もしb^2-4×a×eが0より小さいなら
break #ループを抜け出す
else: #でなければ
if math.sqrt(b ** 2 - 4 * a * e) % 1 == 0: #もし√(b^2-4×a×e)を1で割った余りが0なら
d += 1 #dに1を追加する
c += 1 #cに1を追加する
print("セ:" + str(d)) #セ:とdを繋げた文字を出力する
3.プログラミングする中で難しかった点
・自分で計算するところが難しかった。
・平方数かどうかを判定するところが難しかった。
コメント