#g2005. [GESP2级模拟题]质数密令

[GESP2级模拟题]质数密令

题目描述

小红最近迷上了"幸运数字"。她认为,如果一个正整数的各位数字之和是质数,那么这个数就是幸运数字。

例如,1616 的各位数字之和为 1+6=71+6=777 是质数,所以 1616 是幸运数字。 而 1515 的各位数字之和为 1+5=61+5=666 不是质数,所以 1515 不是幸运数字。

现在给定两个正整数 LLRR,请你帮小红找出区间 [L,R][L,R] 中所有的幸运数字,并按从小到大的顺序输出。

什么是质数? 质数是指大于 11 的自然数中,除了 11 和它本身以外不再有其他因数的数。 例如 2,3,5,7,11,13,2,3,5,7,11,13,\dots 都是质数。

输入格式

输入一行,包含两个正整数 LLRR,表示需要统计的区间为 [L,R][L,R](包含两端)。

输出格式

输出若干行:

  • 如果区间中存在幸运数字,则每行输出一个幸运数字,按从小到大的顺序排列。
  • 如果区间中不存在幸运数字,则输出 No luck

样例输入 1

1 10

样例输出 1

2
3
5
7

样例解释 1

1101\sim10 中,各位数字之和为质数的数有:2  (2),  3  (3),  5  (5),  7  (7)2\;(2),\;3\;(3),\;5\;(5),\;7\;(7),共 44 个。

例如 1010 的各位和为 1+0=11+0=111 不是质数,所以 1010 不是幸运数字。

样例输入 2

1 1

样例输出 2

No luck

样例解释 2

11 的各位数字之和为 1111 不是质数,所以区间内没有幸运数字,输出 No luck

数据范围与约定

对于 100%100\% 的数据,1LR100001 \le L \le R \le 10000

提示

  • 本题需要判断一个数是否为质数,但各位数字之和的最大值不超过 363699999999 的各位和为 9×4=369\times4=36),因此判断范围很小。
  • 可以用循环嵌套来解决:外层遍历 [L,R][L,R] 中的每个数,内层计算该数的各位数字之和。
  • 如果输出 No luck,注意大小写完全一致。