gpt4 book ai didi

c++ - 查找数组中素数的个数

转载 作者:行者123 更新时间:2023-11-30 01:13:40 31 4
gpt4 key购买 nike

我正在尝试编写一个函数来查找数组中素数的个数。

int countPrimes(int a[], int size)
{
int numberPrime = 0;
int i = 0;
for (int j = 2; j < a[i]; j++)
{
if(a[i] % j == 0)
numbPrime++;
}
return numPrime;
}

我想我缺少的是我必须在每次迭代后重新定义 i ,但我不确定如何。

最佳答案

您需要 2 个循环:1 个遍历数组,1 个检查所有可能的除数。我建议将主要支票分离成一个函数。代码:

bool primeCheck(int p) {
if (p<2) return false;

// Really slow way to check, but works
for(int d = 2; d<p; ++d) {
if (0==p%d) return false; // found a divisor
}
return true; // no divisors found
}

int countPrimes(const int *a, int size) {
int numberPrime = 0;
for (int i = 0; i < size; ++i) {
// For each element in the input array, check it,
// and increment the count if it is prime.
if(primeCheck(a[i]))
++numberPrime;
}
return numberPrime;
}

您还可以使用 std::count_if像这样:

std::count_if(std::begin(input), std::end(input), primeCheck)

现场观看here .

关于c++ - 查找数组中素数的个数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31755389/

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