题解 | #查找组成一个偶数最接近的两个素数#

查找组成一个偶数最接近的两个素数

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);
    }
}

全部评论

相关推荐

醉蟀:你不干有的是人干
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务