题目:
解析:
两个思路,一个是挨个遍历,挨个判断,另一个是 因为在 [ 0 , 10 ) 中,质数仅占 { 2 , 3 , 5 , 7 } 四位,如果仅判断这四个数字组合成的数是否是质数的话,性能能否有进一步的提升。
代码:
public class B {
public static void main(String[] args) {
int res = 0;
for (int i = 2; i < 20210605; i++) {
if (zhi1(i) && zhi2(i)) {
res++;
}
}
System.out.println(res);
}
//判断每个位都是质数 10以内2,3,5,7
public static boolean zhi1(int n) {
while (n > 0) {
int temp = n % 10;
if (temp != 2 && temp != 3 && temp != 5 && temp != 7) {
return false;
}
n = n / 10;
}
return true;
}
//判断这个数是质数
public static boolean zhi2(int n) {
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
}