package main import . "fmt" var SEG = []int{ 6, // 0 2, // 1 5, // 2 5, // 3 4, // 4 5, // 5 6, // 6 4, // 7 7, // 8 6, // 9 } func main() { var p,n string Scan(&p,&n) if n == "0" { Println(p) return } value := 0 pb := []byte(p) if pb[0] == '-' { value++ pb = pb[1:] } for _, b := range pb { value += SEG[int(b)-'0'] } limit := 10000 if len(n) < 5 { Sscan(n, &limit) limit-- } for i := 0; i < limit; i++ { var next int if value < 10 { next = SEG[value] } else { tmp := value for tmp > 0 { next += SEG[tmp%10] tmp /= 10 } } if next == value { Println(value) return } value = next } Println(value) } /* 考察 最大桁のPの初回変換でも大きくても 7*2e5 くらいの値にしかならず 大した回数繰り返すことなくすぐに収束すると思われる 4,5,6のセグメントに到達で収束となると思われる */