[信息与未来 2019] 幸运素数
题目描述
素数,又称质数,是指除 1 1 1 和其自身之外,没有其他约数的正整数。例如 2 , 3 , 5 , 13 2,3,5,13 2,3,5,13 都是素数,而 4 , 9 , 12 , 18 4,9,12,18 4,9,12,18 则不是。特别地,规定 1 1 1 不是素数(因此自然数的质因数分解就是唯一的)。
如果一个数本身是素数,并且把最低位删除后得到的数仍是素数、再把最低位删除后得到的数仍是素数……如此往复,直到得到一个一位素数,我们就称它是“幸运素数”。以 233 233 233 为例:
- 233 233 233 本身是素数;
- 23 = ⌊ 233 10 ⌋ 23=\lfloor\dfrac{233}{10}\rfloor 23=⌊10233⌋ 是素数;
- 2 = ⌊ 23 10 ⌋ 2=\lfloor\dfrac{23}{10}\rfloor 2=⌊1023⌋ 是素数。
因此 233 233 233 是“幸运”素数。而 211 211 211 则不是幸运素数:虽然 211 211 211 是素数,但 21 21 21 不是素数。请编程求出一定范围内的所有幸运数字。
输入格式
输入一行两个用空格分隔的正整数 m , n m,n m,n,表示我们希望求幸运素数的范围。
输出格式
从小到大输出 m , m + 1 , m + 2 , ⋯ , n m,m+1,m+2,\cdots,n m,m+1,m+2,⋯,n 中所有的幸运素数,每行输出一个。
样例 #1
样例输入 #1
6 30
样例输出 #1
7
23
29
提示
对于 100 % 100\% 100% 的测试数据,有 1 ≤ m ≤ n ≤ 9999 1\le m\le n\le 9999 1≤m≤n≤9999。
本题原始满分为 15 pts 15\text{pts} 15pts。
Scratch实现
后续
接下来我会不断用scratch来实现信奥比赛中的算法题、Scratch考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容