Python×インド式算数⑪100に近い数の2乗を因数分解で解く






 ということで本日も2乗計算ですね。
 92の2乗とかであれば、
 ①100-8を考えます。
 で92と8とで因数分解の形にもっていくわけですね。
 で、
 ②92の2乗=(92+8)(92-8)+8の2乗
 という形に持ち込みます。
 本来の因数分解であればこれがAの2乗ーAB+AB-Bの2乗……
 と持っていきますけど、そうはしません。
 これを素直に足し算引き算でやっていきます。
 すると
 ③100×84+64となります。
 8464ですね。
 92の2乗は8464という風に出ます。


 ・これはちょっと外れた値でもできます。
 例えば79の2乗であれば
 ①100ー79=21となります。
 なので79の2乗は
 ②(79+21)(79-21)+21の2乗となります。
 ③100×58+441=6241という風に出ます。

 ちょっと値を因数分解の形に置き換えたりとかしますから手間はかかりますが、確実に値を出すことができるとはいえるでしょう。
 ということで以下コードですね。
 良かったらまた練習してみてください。
 
import random
num1 = random.randint(50,100)
num2 = 100-num1
print(num1,"の2乗の値を求める")
hoge =num1**2
hage =num2**2
print(num1,"の2乗","=",hoge)
print(num2,"の2乗","=",hage)
print(hoge, hage)
print('①因数分解の形へもっていき②そのまま計算してしまう')
print(num1,"の2乗","=","(",num1,"+",num2,")","(",num1,"-",num2,")","+",num2,"の2乗")
print("=",(num1+num2),"*",(num1-num2),"+",hage)
print(hoge)
print('答えは?')




この記事へのコメント

にほんブログ村 ゲームブログ ゲーム評論・レビューへ
にほんブログ村