練習問題¶

1, 11, 111,1111のようにすべての桁の数字が1である自然数をレピュニット(数)と言い、1番目のレピュニットを$R_1 = 1$、2番目を$R_2 = 11$と表します。$R_2$から$R_{10}$までを出力しなさい。

In [2]:
for i in range(2,11):
    n = 0
    for j in range(i):
        n += 10 ** j
    print(n)
11
111
1111
11111
111111
1111111
11111111
111111111
1111111111

$10^0$は1で、$10^1$は11。$10^2$は100です。"11, 111,1111..."と出力したいので、以下で$i = 2$のとき、$n$には$10^0 = 1$と$10^1=10$が足された数が出力されます。同様に、$i = 3$のときには$i = 2$のときのプロセスに$10^2 = 100$がさらに足されて出力されます。上のコードでは、これが$i = 10$まで繰り返されます。