前几天面试时,面试官的最后一个问题就是:5分钟内写出,求1000以内各个位数字之和是偶数的质数
package com.gezq.test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
/**
* @author: gezq0714
* @email: ge051799qi@163.com
* @date: 2021/8/24 - 11:31
* @description: 求n以内各个位数字之和是偶数的质数,此处以1000为例
*/
public class PrimeEvenNumber {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
List<Integer> list = new ArrayList<Integer>(){{
add(2);
}};
// 求质数
for (int i = 2; i < n; i++) {
for (int j = 2; j < i; j++) {
if ((i % j) == 0) {
break;
}
if (j == i - 1) {
list.add(i);
}
}
}
int count = 0;
// 求各个位数字相加和为偶数
for (int num : list) {
if ((PrimeEvenNumber.get(num) & 1) == 0) {
System.out.println(num);
count++;
}
}
System.out.println("count = " + count);
}
private static int get(int num) {
int res = 0;
while (num != 0) {
res += (num % 10);
num /= 10;
}
return res;
}
}