gpt4 book ai didi

c++ - 计算两个数之间质数个数的函数

转载 作者:太空宇宙 更新时间:2023-11-04 16:12:41 25 4
gpt4 key购买 nike

我正在尝试计算两个数字之间素数的个数,我的程序运行良好,但打印出答案加 1。我不确定我的素数检查器出了什么问题。在 1-100 之间检查时,我得到 26 而不是 25。

#include <iostream>
using namespace std;

int number_of_primes(int from, int to){

int count=0;
for (int a=from ; a < to ; a++)
{
bool prime = true;
for (int c=2 ; c*c <= a ; c++)
{
if(a % c == 0)
{
prime = false;
break;
}
}
if(prime) count++;
}


return count;

}

int main(){

int a=1;
int b=100;

cout<<number_of_primes(a, b)<<endl;

return 0;

}

最佳答案

你在计数中包含了 1,跳过它:

int number_of_primes(int from, int to) {

int count = 0;
for (int a = from; a < to; a++)
{
if (a == 1)
continue; // Skip 1
...

否则,正如 Mark 所建议的,您不妨这样做:

a = max(from, 2) // Disallow 1/0 values

其余代码是正确的。

关于c++ - 计算两个数之间质数个数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26643243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com