@yexiaoqi
2022-05-20T08:39:22.000000Z
字数 673
阅读 628
刷题
题目:任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。
数据范围:输入的数据满足 4≤n≤1000
输入描述:输入一个大于2的偶数
输出描述:从小到大输出两个素数
示例:
输入:20
输出:7
13
链接:https://www.nowcoder.com/practice/f8538f9ae3f1484fb137789dec6eedb9
默认使用穷举;因为要求差值最小的两个,也可以从n/2向前遍历,碰到的第一个i和n-i就是要求的结果
public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in);while(sc.hasNext()){int n = sc.nextInt();int min = Integer.MAX_VALUE;int a = 0;int b = 0;for(int i=2; i<n; i++){if(isPrime(i) && isPrime(n-i)){int abs = Math.abs(n-i-i);if(abs < min){a = i;b = n-i;min = abs;}}}System.out.println(a);System.out.println(b);}}public static boolean isPrime(int n){for(int i=2; i<n; i++){if(n%i == 0) return false;}return true;}}
