孫のその先の表示

孫の次は、ひ孫、玄孫・・・・。

その先は、知らなかったが、昨日調べてみたところ、

来孫、昆孫、仍孫、雲孫、雲孫の子、雲孫の孫・・・と続くらしい。

 

それでは、何代離れていた場合に何孫になるのかについて、

コードを考えてみました。

python3.6

 

○コード

# coding=utf-8

N=int(input("何代離れてる?:"))

a=["子","孫","ひ孫","玄孫","来孫","昆孫","仍孫","雲孫"]

if N==0:
  print("本人")
elif N>0 and N<=8:
  print(a[N-1])
else:
  if N%8==0:
   print(a[7]+("の"+a[7])*(N//8-1))
  else:
   print(a[7]+("の"+a[7])*(N//8-1)+"の"+a[N%8-1])

○入力した数値:1000

○アウトプット:

雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫の雲孫

 

やったー。

もう少しスマートな記述方法がございましたらご教示お願いします。

ユークリッドの互除法(練習)

pythonの練習中。

練習問題:ユークリッドの互除法

2つの数字(入力)から、最大公約数を算出

python3.6

 

コード

# coding:utf-8

#2つの数字の入力

a = []
a = list(input().split())          #入力受付
a=list(map(int,a))     #文字列→整数化
a.sort(reverse=True)   #大→小のソート

i=0
while a[i]%a[i+1]!=0:
a.append(a[i]%a[i+1])
i += 1

print("最大公約数は{0}です".format(a[-1]))

 

数字入力:1071 1029

アウトプット:最大公約数は21です

 

合っているかどうか分かりませんが、何とか算出できるようになったのではと思います。もっと効率的に出来る方法があればご教示頂ければと思います。