我没有很多C ++经验。有没有人能够建立一个程序,计算1到n之间的素数的数量,以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;
}