21xrx.com
2025-04-14 02:17:32 Monday
文章检索 我的文章 写文章
C++实现求解和谐素数之和
2023-07-09 13:46:35 深夜i     11     0
C++ 和谐素数 求解 实现 和谐数

和谐素数是指一个素数的每个数字的和都是素数。例如,23是一个和谐素数,因为2和3都是素数,而13不是和谐素数,因为1不是素数。C++是一种常见的编程语言,它使用起来非常方便,可以帮助我们求解和谐素数之和。

在C++中,我们可以通过循环来判断一个数字是否是素数,同时也可以判断它的每个数字的和是否是素数。接下来,我们可以使用变量来计算符合条件的和谐素数的和。

下面是一个使用C++求解和谐素数之和的简单代码:

#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int n) {
  if (n <= 1)
    return false;
  
  for (int i = 2; i <= sqrt(n); i++) {
    if (n % i == 0)
      return false;
    
  }
  return true;
}
bool isHarmonic(int n) {
  int sum = 0;
  while (n > 0) {
    sum += n % 10;
    n /= 10;
  }
  if (isPrime(sum))
    return true;
  
  return false;
}
int main() {
  int n, sum = 0;
  cout << "请输入一个正整数n: ";
  cin >> n;
  for (int i = 2; i < n; i++) {
    if (isPrime(i) && isHarmonic(i)) {
      sum += i;
    }
  }
  cout << "和谐素数之和为: " << sum << endl;
  return 0;
}

在上面的代码中,我们定义了两个函数isPrime和isHarmonic。isPrime函数用来判断一个数字是否为素数,isHarmonic函数用来判断一个数字是否为和谐素数。接下来,在main函数中,我们首先输入一个正整数n,然后使用循环来遍历2到n之间的所有数字,对每个数字进行判断。如果这个数字既是素数,且它的每个数字的和也是素数,则累加到sum变量中。最后输出sum变量的值,即和谐素数之和。

如果我们输入20,程序将输出和谐素数之和为23,因为2、3、5、7、11、13都是和谐素数,它们的和为23。

总之,C++是一种非常强大的编程语言,它可以帮助我们实现各种算法和程序。通过使用循环和判断函数,我们可以很容易地求解和谐素数之和,这个过程也可以帮助我们更好地理解和使用C++。

  
  

评论区

    相似文章