21xrx.com
2025-03-21 21:32:35 Friday
文章检索 我的文章 写文章
C++实现绝对素数
2023-07-12 17:26:08 深夜i     28     0
C++ 绝对素数 实现

绝对素数是一种特殊类型的质数,它本身也是素数。例如,依次列举出的素数数列2,3,5,7,11,13,17,19……则2-3=|-1|属于绝对素数,3-2=|1|也属于绝对素数。在字符终端,使用C++语言可以很方便地实现绝对素数。

首先需要了解怎么判断质数。质数是指只能被1和本身整除的数,一般地,判断一个数n是否是质数,只需要在2到n-1内查找是否有可以将n整除的数即可。如果不存在,则n是质数。

C++语言中,可以使用循环语句for来实现质数判断:

bool isPrime(int n) {
  for (int i = 2; i * i <= n; ++i) {
    if (n % i == 0) // 有整除
      return false;
    
  }
  return true;
}

接下来需要实现绝对素数的判断,即判断差的绝对值是否是质数。同样,使用C++的for循环语句可以实现:

bool isAbsolutePrime(int n) {
  if (n <= 2)
    return false;
  
  
  int abs_val;
  for (int i = 2; i < n; ++i) {
    abs_val = abs(n - i);
    if (isPrime(abs_val))
      return true;
    
  }
  
  return false;
}

最后,在main函数中调用isAbsolutePrime函数,输出所有绝对素数即可:

int main() {
  for (int i = 2; i <= 100; ++i) {
    if (isAbsolutePrime(i))
      std::cout << i << " is absolute prime." << std::endl;
    
  }
  return 0;
}

这样,就可以输出2到100中所有的绝对素数。

总体来说,使用C++语言实现绝对素数并不难,只需要掌握循环语句和质数判断即可。当然,绝对素数在实际应用中并没有很多,但这个算法的实现仍然有一定的参考价值。

  
  

评论区