整数の計算

次の計算をしよう

29のように1の位が9の2桁の整数を1の位と10の位に分け、それらの積と和の合計を計算しよう。

10から99までの整数につき同じ計算を行い、(1)と同じ結果になる数字を探そう。

次の計算をしよう

整数に対して各桁の数字を合計した値を返す関数を作成し、$17^3$を摘要し、その合計が元の17に戻っていることを確認しよう。

17と同じように2桁の数字で3乗した結果の各桁の合計がもとの数字に戻るものを求めよう。

4以上9以下のnに対し、2桁の数字をn乗した結果の各桁の合計がもとの数字に戻るものを求めよう。例:$17^3=4913\quad4+9+1+3=17$。

次の値が7で割り切れるかを確認しよう

$111111$

$444^333+3333^4444$

$1^6 + 2^5 + 3^4 + 4^3 + 5^2 + 6^1 + 7^0$

3桁の正の整数(num)について、次の計算をしよう。

numの1の位をaとして、num からaを切り捨て、さらにaを20倍した数値をnumから差し引いた値(b)、およびbを10で割った値(c)を返す関数を作成しよう。

(例:546の場合 546から6(a)と6×20を差し引いて420(b)となります。さらに420を10で割ってc=42となります。)

3桁の整数について元の数(num)、b,cの3つの数を7で割った余りを比較しよう。

3桁の正の整数(num)について、次の計算をしよう。

numを100の位(a)と10の位と1の位を2桁の整数と見た数値を(b)に分割し、aを2倍して、bに足しこんだ値が7の倍数であれば元の数は7の倍数である。

(例:546の場合、5×2=10を46に足した値が56になります。)

3桁の整数について元の数と計算結果を7で割った余りを比較しよう。

7の倍数について次の計算をしよう。

3桁の整数について100の位を9倍、10の位を3倍した数値と1の位の和を計算し、計算結果と元の数を7で割った余りを比較しよう。

2桁以上の整数について、n桁目の数字にそれぞれ3のn-1乗を掛け、それらを合計します。その合計が7で割り切れれば元の数字は7の倍数で、合計を7で割った余りが元の数字の余りと一致します。このような計算を行う関数mod_7_3を作成し、次の数字について確認しよう。

44333+3333444444333+33334444のような数字の場合、mod_7_3関数を適用しても、桁数が多すぎて7の倍数か判断できません。そこで、計算結果が1000未満になるまで複数回してみよう。

リスト(l=[1234,12345,123456,234567,865432])にある4桁から6桁の数字を上の1から1~3桁(a)と下の3桁(b)に分け、元の数字とa-bを7で割った余りを計算し、結果を比較しよう。

  1. l=[1234,12345,123456,234567,865432]
  2. for i in l:
  3. a=i%(10**3)
  4. b=i//(10**3)
  5. print(i,a,b,i%7,(a-b)%7)

1234 234 1 2 2
12345 345 12 4 4
123456 456 123 4 4
234567 567 234 4 4
865432 432 865 1 1