僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
二桁の自然数 x と、 x % 10 * 10 + x / 10 の和(例: 54+45=99)は、常に11の倍数になるらしい。
#!/usr/bin/env python def ant(x): return x // 10 + x % 10 * 10 for x in range(10,100): y = ant(x) z = x + y a = z // 11 b = z % 11 print ("%d + %2d = %3d, %3d / 11 = %2d, %3d %% 11 = %d" % (x, y, z, z, a, z, b, ))
実行結果は、
10 + 1 = 11, 11 / 11 = 1, 11 % 11 = 0 11 + 11 = 22, 22 / 11 = 2, 22 % 11 = 0 12 + 21 = 33, 33 / 11 = 3, 33 % 11 = 0 //ry 97 + 79 = 176, 176 / 11 = 16, 176 % 11 = 0 98 + 89 = 187, 187 / 11 = 17, 187 % 11 = 0 99 + 99 = 198, 198 / 11 = 18, 198 % 11 = 0
%% にちょっと嵌る。%が一つしかないと、
Traceback (most recent call last): File "num.py", line 11, in <module> % (x, y, z, z, a, z, b, )) ValueError: unsupported format character ' ' (0x20) at index 40
python-3.1.2 でも同じに動いた。
さっきの例では、24+42と42+24を別々に数えていた。
#!/usr/bin/env python def ant(x): return x // 10 + x % 10 * 10 for x in range(10,100): y = ant(x) z = x + y a = z // 11 b = z % 11 if x < y: continue else: print ("%d + %2d = %3d, %3d / 11 = %2d, %3d %% 11 = %d" % (x, y, z, z, a, z, b, ))
前の90通りが54通りになった。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。