作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果这不是问这个问题的最佳地点,请将我带到最佳地点。在我最近写的一本书中,有一个练习要求在 main 中编写以测试从 2 到 20 的所有数字,并将结果打印在不同的行上。它要我使用质数函数并在 main 中使用 for 循环。我被卡住了,这就是我目前所拥有的。
(这是修改后的代码,我仍在努力让它工作。无法查明问题所在。)
#include <iostream>
#include <cmath>
using namespace std;
int prime(int x);
int main() {
int i;
for(i=2; i <= 22; i++)
cout << prime(i) << endl;
return 0;
}
int prime(int x) {
int i;
for(i=2; i <= sqrt((double)x); i++) {
if(x % i == 0)
return false ;
}
return true;
}
最佳答案
表达式i % x
是i
的其余部分通过 x
自 i < sqrt((double) x)
, i % x
始终等于 0
您必须将表达式更改为 x % i == 0
检查是否x
可以被 i
整除所以它不是素数。
您还必须添加 if
返回 false
仅当x % i == 0
.所以:
if (x % i == 0){
return false;
}
关于c++ - 对此很陌生。质数函数练习建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20851665/
我是一名优秀的程序员,十分优秀!