C++教程
C++控制语句
C++函数
C++数组
C++指针
C++对象
C++继承
C++多态
C++抽象
C++常用
C++ STL教程
C++迭代器
C++程序

C++程序检查一个数是否可​​以表示为两个质数之和

C++ 程序检查一个数是否可​​以表示为两个质数之和

检查一个整数(由用户输入)是否可以使用函数表示为所有可能组合的两个素数之和的示例。
要理解此示例,您应该了解以下C++ 编程 主题:
C++ for Loop C++ if, if...else 和嵌套 if...else C++ 函数 C++ 用户定义函数类型
该程序从用户那里获取一个正整数,并检查该数字是否可以表示为两个素数之和。
如果数字可以表示为两个质数之和,则输出显示质数的组合。
为了执行此任务,创建了一个用户定义的函数来检查素数 .

示例: 检查一个数是否可​​以表示为两个质数之和

#include <iostream>
using namespace std;
bool checkPrime(int n);
int main() {
    int n, i;
    bool flag = false;
    cout << "Enter a positive  integer: ";
    cin >> n;
    for(i = 2; i <= n/2; ++i) {
        if (checkPrime(i)) {
            if (checkPrime(n-i)) {
                cout << n << " = " << i << " + " << n-i << endl;
                flag = true;
            }
        }
    }
    if (!flag)
      cout << n << " can't be expressed as sum of two prime numbers.";
    return 0;
}
// Check prime number
bool checkPrime(int n) {
    int i;
    bool isPrime = true;
    // 0 and 1 are not prime numbers
    if (n == 0 || n == 1) {
        isPrime = false;
    }
    else {
        for(i = 2; i <= n/2; ++i) {
            if(n % i == 0) {
                isPrime = false;
                break;
            }
        }
    }
    return isPrime;
}
输出
Enter a positive integer: 34
34 = 3 + 31
34 = 5 + 29
34 = 11 + 23
34 = 17 + 17
在这个程序中,我们使用 checkPrime()函数来检查一个数是否是素数。
main()中,我们从用户那里获取一个数字并将其存储在变量 n中。
我们还将 bool 变量 flag 初始化为 false。我们用这个变量来判断输入的数是否可以表示为两个素数之和。
然后我们迭代一个从 i = 2i = n/2的循环。在每次迭代中,我们检查 i 是否为素数。
如果 i 是素数,我们检查 n-i 是否是素数。
如果 n-i 也是素数,那么我们知道 n 可以表示为两个素数 in-i.
因此,我们将结果打印在屏幕上并将 flag 的值更改为 true。否则, flag 仍然是 false
这个过程一直持续到循环结束。
如果 flag仍然是 false,那么我们知道 n不能表示为两个素数之和,我们打印屏幕上的那条消息。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4