21xrx.com
2024-09-20 00:37:28 Friday
登录
文章检索 我的文章 写文章
C++实现绝对素数
2023-07-12 17:26:08 深夜i     --     --
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++语言实现绝对素数并不难,只需要掌握循环语句和质数判断即可。当然,绝对素数在实际应用中并没有很多,但这个算法的实现仍然有一定的参考价值。

  
  

评论区

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