题解 | #查找组成一个偶数最接近的两个素数#
查找组成一个偶数最接近的两个素数
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); } }