ツリーの中の距離 横へな2017.2.4 問題

問題の概要

数がある。
数には子供がいる。子供は「その数の約数+1、ただし、2より大きくその数より小さいもの」だ。
例えば。50 の約数は{ 1, 2, 5, 10, 25, 50 }。
約数+1 は、{ 2, 3, 6, 11, 26, 51 }。
これらのうち、2よりも大きく、50よりも小さいものは { 3, 6, 11, 26 } なので、これが 50 の子供たち。
子供にはまた子供が、その子供にはまた子供がいたりいなかったりして、ツリーになる。
で。
ツリーの中にある数の距離を「親子関係の線で辿ったときの線の本数の最小値」で定義する。
たとえば、根が 50 のツリーの中では、

となる。

で。ツリーの根となる数と、ツリー内にある2つの数を与える。2つの数の距離を計算せよ。

入力

入力は
50:6,3
こんな感じ。
コロンの前が根の値。コロンの後にコンマ区切りで2つの数。

出力

出力は簡単。2数の距離を 10進数で出せば良い。

先ほどの入力の場合、線をたどればわかる通り、
1
と出力すればよい。

補足

サンプルデータ

# 入力 期待 状況へのリンク
0 50:6,3 1 リンク
1 98:5,11 4 リンク
2 1000:33,20 7 リンク
3 514:9,18 8 リンク
4 961:5,4 3 リンク
5 1369:1369,3 2 リンク
6 258:16,12 5 リンク
7 235:13,3 2 リンク
8 1096:19,17 8 リンク
9 847:7,17 6 リンク
10 1932:3,5 2 リンク
11 2491:4,8 3 リンク
12 840:421,36 2 リンク
13 1430:37,111 3 リンク
14 496:17,9 2 リンク
15 891:6,10 1 リンク
16 1560:196,21 2 リンク
17 516:20,12 5 リンク
18 696:30,59 2 リンク
19 1760:5,441 2 リンク
20 1736:11,26 5 リンク
21 1518:17,34 4 リンク
22 806:63,16 5 リンク
23 1920:3,97 2 リンク
24 1150:13,22 4 リンク
25 920:116,5 1 リンク
26 2016:7,337 2 リンク
27 408:9,25 2 リンク
28 735:36,8 2 リンク
29 470:5,31 2 リンク
30 2100:12,351 3 リンク
31 870:36,10 1 リンク
32 1512:253,13 2 リンク
33 697:12,15 3 リンク
34 1224:5,14 2 リンク
35 986:125,17 3 リンク
36 864:12,13 3 リンク
37 500:21,51 2 リンク
38 819:33,21 4 リンク
39 594:55,3 2 リンク
40 638:17,24 3 リンク

C/C++/Java 用のテストデータ