题解 | #查找组成一个偶数最接近的两个素数#
查找组成一个偶数最接近的两个素数
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;
}
查看1道真题和解析