1到n之间的素数个数加1

时间:2016-08-06 14:55:24

标签: c++11

我没有很多C ++经验。有没有人能够建立一个程序,计算1到n之间的素数的数量,以1结束?

1 个答案:

答案 0 :(得分:0)

首先,我实现了一个检查数字是否为素数的函数。

bool isPrime(const unsigned int number) {
  if (number == 0) return false;
  if (number == 1 || number == 2) return true;

  const unsigned int half_number = number / 2;

  for (unsigned int i = 2; i <= half_number; ++i) {
    if (number % i == 0)
      return false;
  }
  return true;
}

您可以实现一个检查最后一位数是否为1的函数:

bool lastDigitOne(const unsigned int number) {
  return (number % 10) == 1 ? true : false; 
}

最后计算代码:

unsigned int countingCode(const unsigned int N) {
  unsigned int counter = 0;
  for (unsigned int i = 1; i <= N; ++i) {
    if (isPrime(i) == true && lastDigitOne(i)) {
      ++counter;
    }
  }
  return counter;
}