[白俊]4673号:セルフサービス番号
3551 ワード
白駿4673号
セルフサービス番号は1949年にインドの数学者D.R.Kaprekarによって命名された.正の整数nについて、d(n)がnおよびnの各ビット数の関数を定義する.例えば、d(75)=75+7+5=87である.
正の整数nが与えられると、その数からn、d(n)、d(d(n)、d(d(d(n))、...無限数列を生成できます.
たとえば、33で始まると、次の数字は33+3+3=39、次の数字は39+3+9=51、次の数字は51+5+1=57となります.
このようにして、次の数の列を生成できます.
33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, ...
セルフサービス番号は1949年にインドの数学者D.R.Kaprekarによって命名された.正の整数nについて、d(n)がnおよびnの各ビット数の関数を定義する.例えば、d(75)=75+7+5=87である.
正の整数nが与えられると、その数からn、d(n)、d(d(n)、d(d(d(n))、...無限数列を生成できます.
たとえば、33で始まると、次の数字は33+3+3=39、次の数字は39+3+9=51、次の数字は51+5+1=57となります.
このようにして、次の数の列を生成できます.
33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, ...
arr = [0] * 10100
for i in range(1, 10001):
num = i
total = i
if(arr[i] != 1):
while 1:
while(num > 0):
total += num % 10
num = num // 10
arr[total] = 1
if(total >= 10000): break
num = total
for i in range(1, 10000):
if(arr[i] != 1): print(i)
iが2の時4 8 16...ずっとやってarrを1埋め尽くして、10なら10+1+0~11,11+1~13,13+1+3~17…さらにarrを1に満タンにします.そして最後に出力したのは1ではありません.Reference
この問題について([白俊]4673号:セルフサービス番号), 我々は、より多くの情報をここで見つけました https://velog.io/@malza_0408/백준-4673번-셀프-넘버テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol