题解 | #查找组成一个偶数最接近的两个素数#
查找组成一个偶数最接近的两个素数
https://www.nowcoder.com/practice/f8538f9ae3f1484fb137789dec6eedb9
#include <math.h>
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
bool isPrim(int num)
{
bool rB = true;
int cRange = sqrt(num)+1; //确定搜索半径
for (int i = 2; i != cRange; i++) {
if (num % i == 0) { //如果能被整除
rB = false; //则不是一个素数
break;
}
}
return rB;
}
typedef struct
{
int a;
int b;
int diff;
}diff_inf;
int main() {
int cData;
bool rB;
int cDiff;
diff_inf diFF;
diFF.diff = 0x7ffffffe;
while (scanf("%d",&cData) != EOF) {
int start = 2;
for (int i = start; i != cData; i++) {
if (isPrim(i) == true && isPrim(cData-i) == true ) {
cDiff = abs(cData-i-i);
if (cDiff <diFF.diff) {
diFF.diff = cDiff;
diFF.a = i;
diFF.b = cData-i;
// printf("%d %d %d D:%d\r\n",diFF.a,diFF.b ,cDiff,diFF.diff);
}
}
}
printf("%d\r\n%d\r\n",diFF.a,diFF.b);
}
}

查看26道真题和解析