本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
如果一个正整数只有 11 和它本身两个约数,则称为一个质数(又称素数)。前几个质数是:2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, · · ·2,3,5,7,11,13,17,19,23,29,31,37,⋅⋅⋅ 。如果一个质数的所有十进制数位都是质数,我们称它为纯质数。例如:2,3, 5, 7, 23, 372,3,5,7,23,37 都是纯质数,而 11, 13, 17, 19, 29, 3111,13,17,19,29,31 不是纯质数。当然 1, 4, 351,4,35 也不是纯质数。请问,在 11 到 20210605 中,有多少个纯质数?
public class 纯质数 {
public static void main(String[] args) {
int ans = 0;
// TODO Auto-generated method stub
for (int i = 2; i <= 20210605; i++) {
if (isZs(i)) {
if (isCzs(i)) {
ans++;
}
}
}
System.out.println(ans);
}
public static boolean isZs(int num) {
if (num == 0 || num == 1)
return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return false;
}
return true;
}
public static boolean isCzs(int num) {
int temp = 0;
while (num > 0) {
num %= 10;
if (!isZs(num))
return false;
num /= 10;
}
return true;
}
}