21xrx.com
2024-09-20 00:10:20 Friday
登录
文章检索 我的文章 写文章
C++编写程序寻找100以内的可逆素数
2023-07-11 07:28:20 深夜i     --     --
C++ 可逆素数 程序 寻找 100以内

在C++语言中,有各种各样的算法来寻找素数。可逆素数,是一种特殊的素数,即反转后的数也是素数。例如,13是素数,它反转后得到的31也是素数,因此13是一个可逆素数。

我们来编写一段C++程序,来寻找100以内的可逆素数。首先,我们需要判断一个数是否为素数。判断素数的方法很多,以下是其中一种简单的方法:

bool isPrime(int num) {

  if (num == 2 || num == 3)

    return true; // 2和3是素数

  if (num == 1 || num % 2 == 0)

    return false; // 1和偶数不是素数

  for (int i = 3; i <= sqrt(num); i += 2) {

    if (num % i == 0)

      return false; // 能整除的数不是素数

  }

  return true; // 其他情况均为素数

}

我们接下来需要判断一个数是否可逆。我们可以将数字反转,然后与原数字比较是否相等。例如,反转后的31与原数字13相等,因此13是可逆素数。

bool isReversible(int num) {

  int reversedNum = 0, originalNum = num;

  while (originalNum > 0) {

    reversedNum *= 10;

    reversedNum += originalNum % 10;

    originalNum /= 10;

  }

  return num == reversedNum;

}

最后,我们将以上两个函数结合起来,来寻找100以内的可逆素数:

void findReversiblePrimes() {

  for (int i = 1; i < 100; i++) {

    if (isPrime(i) && isReversible(i))

      cout << i << endl;

  }

}

这段程序将遍历1到99之间的数字,判断是否为素数和可逆数,并将符合条件的数字输出。

通过以上的程序,我们可以找到100以内的可逆素数,例如13、17、31、37、71和73。这种算法也可以拓展到更大的数字范围,只需要简单地修改遍历的范围即可。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复