C++ 寻找素因子C++;
我开始写一个项目,找到给定输入数的所有素数因子C++ 寻找素因子C++;,c++,loops,C++,Loops,我开始写一个项目,找到给定输入数的所有素数因子 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 tr
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;
}
int checkprimeditors=0;
int x=0;
bool-isPrime(int-someNumber){
布尔状态=真;
对于(intz=2;z>x;
for(int-someNumber=1;someNumberisPrime(someNumber)
返回一个布尔值。布尔值几乎永远不会等于someNumber
本身。不需要=
测试,只要:
if (x % someNumber == 0 && isPrime(someNumber))
无关:重复调用is prime将是致命的。请研究使用质数筛选算法并缓存结果。通过将输入到
x
中的数字与来自isPrime()的布尔结果进行比较,您希望实现什么样的目标
。你能试试吗?在你的isPrime
函数中,你从不使用status
变量。你可以不使用sqrt
而直接执行z*z,你可以从3开始循环,然后递增2。除2之外的所有偶数都不是素数。