我着手编写一个项目,该项目将查找给定输入数字的所有主要除数。
int checkPrimeDivisors = 0;
int x = 0;
bool isPrime(int someNumber) {
bool status = true;
for (int z = 2; z <= sqrt(someNumber); z++) {
if (someNumber % z == 0)
return false;
}
return true;
}
int main() {
cin >> x;
for (int someNumber = 1; someNumber < x; someNumber++) {
if (x % someNumber == 0 && someNumber == isPrime(someNumber))
cout << someNumber << endl;
}
return 0;
}
这是我想出的代码。当我检查所有除数并省略&& someNumber == isPrime(someNumber)时,适用于工作的循环,但是一旦我添加了条件检查,它就根本不会显示除数。
我似乎无法弄清楚问题出在哪里,我们将不胜感激。
最佳答案
isPrime(someNumber)
返回一个 bool(boolean) 值。 bool(boolean) 值几乎永远不会等于someNumber
本身。无需==
测试,只需:
if (x % someNumber == 0 && isPrime(someNumber))
关于c++ - 查找素数C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46247317/