题解 | #查找组成一个偶数最接近的两个素数#
查找组成一个偶数最接近的两个素数
https://www.nowcoder.com/practice/f8538f9ae3f1484fb137789dec6eedb9
#include <stdbool.h> #include <stdio.h> #include <string.h> bool is_prime(int n); void findPrimes(int n); bool is_prime(int n) { if (n < 2) return false; for (int i = 2; i * i <= n; i++) { while (n % i == 0) return false; } return true; } void findPrimes(int n) { int num = n / 2; int p = num; int* r1 = malloc(sizeof(int)), *r2 = malloc(sizeof(int)); int min = n; for (int i = 0; i < num; i++) { if (is_prime(p) && is_prime(n - p)) { if ((n - p) - p < min) { *r1 = p; *r2 = n - p; min = (n - p) - p; } } p = p - 1; } printf("%d\n%d", *r1, *r2); } int main() { int n; scanf("%d", &n); findPrimes(n); return 0; }