开始: 2024-06-30 14:30:00

20240630

结束: 2024-06-30 17:30:00
当前: 2025-0505-3030 11:06:37  类型:单人排位赛 状态:已经结束 
P2 : 幸运数  
描述

存在一类神奇的数字,它们经过若干次迭代后会变为1。超能侠很喜欢这类数字,称他们为“幸运数”。将一个数的各位数字平方后求和称为一次迭代,比如19,它迭代得到82、68、100、1,因此是一个幸运数。

有一些数字就不那么幸运,比如29,它迭代得到85、89、145、42、20、4、16、37、58、89 …… 可见 89 到 58 形成了死循环,它永远无法变为1。

显然,一个幸运数迭代过程中经过的数字也是幸运数,比如19、82、68、100都是幸运数。然而,超能侠发现有一类特殊的幸运数,在一定区间内它们不会被其他数字所经过,显得更加幸运,19在区间[1, 100]范围内就是这样的数。如果它还是个素数的话,它的幸运度还将进一步增强。

对于一个特殊的幸运数,幸运度的计算方式如下:设这个数变为1的过程中经过的数字个数为x,则该数的幸运度为x。如果这个数为素数,那么它的幸运度翻倍。例如19变为1的过程中经过了4个数字(82、68、100、1),且它为素数,故19的幸运度为8.

现在,你的任务是编写一个程序,探索给定区间内的特殊的幸运数,并计算它们的幸运度。

输入

输入文件第一行两个整数 A,B,表示区间的左右端点。

输出

输出文件有若干行,按递增顺序输出给定闭区间 [A,B] 内的所有特殊的幸运数和它的幸运度。每对数字占一行,数字间以 1 个空格分隔。如果给定区间内没有特殊的幸运数,输出SAD。

样例

输入

10 40

输出

19 8
23 6
28 3
31 4
32 3

输入

110 120

输出

SAD
提示

【输入输出样例1说明】

[10,40]区间内的10、13 也都是幸运数,但它们分别依附于其他数字,所以不输出。19、23、28、31、32虽然其实也依附于其它幸运数,但因为那些数字不在给定区间 [10, 40] 内,所以它们在给定区间内是特殊的幸运数。

 

对于40%的数据,有1≤A,B≤100;

对于100%的数据,有1≤A,B≤10000。