魔法质数-蓝桥

题目链接:4.魔法质数 - 蓝桥云课 (lanqiao.cn)

解题思路:先找出所有的质数,然后再遍历所有质数,找两个质数和为n,找到Y,结束程序,找不到N。

下面是c++代码:

#include 
#include
using namespace std;
int main()
{
    // 请在此输入您的代码
    int n, count = 0,arr[10000], num = 0;
    bool result = true;
    cin >> n;
    //先找出所有的质数
    for (int i = 2; i < n; i++) {
        result = true;
        for (int j = 2; j <= sqrt(i); j++) {
            if (i % j == 0) {
                result = false;
                break;
            }
        }
            if (result == true) {
                arr[num++] = i;
            }
    }
    //遍历质数数组,找两个数之和等于n的两个质数
    for (int i = 0; i < num; i++) {
        for (int j = i + 1; j < num; j++) {
            if (arr[i] + arr[j] == n) {
                cout << 'Y';
                return 0;
            }
        }
    }
    cout << 'N';
    return 0;
}

你可能感兴趣的:(算法,数据结构)