对此很陌生.质数函数运动建议
New to this. Prime number function exercise advice
如果这不是问这个问题的最佳地点,请引导我到最好的地方。在我最近写的一本书中,有一个练习,要求在 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 < sqrt((double) x)
年以来i
除以x
的余数,i % x
总是等于 0
您必须将表达式更改为 x % i == 0
以检查x
是否可以被i
整除,以便它不是素数。
此外,您还必须添加一个if
,以便仅在x % i == 0
时才返回false
。 所以:
if (x % i == 0){
return false;
}
更改
i % x == 0;
自
if (x % i == 0) // you want to check this true/false, so use it inside if()
#include <iostream>
using namespace std;
bool isPrime(int n){
if(n%2==0) return false;
int m=3;
while(m*m<n){
if(n%m==0) return false;
m += 2;
}
return true;
}
int main(){
int input;
cout<<"Please enter an integer: ";
cin>>input;
if(isPrime(input))
cout<<input<<" is a prime number.n";
else
cout<<input<<" is not a prime number.n";
return 0;
}
您缺少sqrt
的库<cmath>
和 ";" 在素数函数的分项中这是工作代码:
#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;
int y= sqrt((double)x);
for(i=2; i <= y; ++i) {
if (x % i == 0)
return false ;
}
return true;
}
相关文章:
- "error: no matching function for call to"构造函数错误
- 什么时候调用组成单元对象的析构函数
- 继承函数的重载解析
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- C++模板来检查友元函数的存在
- 递归函数计算序列中的平方和(并输出过程)
- 对RValue对象调用的LValue ref限定成员函数
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 为什么使用 "this" 指针调用派生成员函数?
- 将对象数组的引用传递给函数
- 函数调用中参数的顺序重要吗
- 函数向量_指针有不同的原型,我可以构建一个吗
- 使用不带参数的函数访问结构元素
- 代码在main()中运行,但在函数中出现错误
- 内置函数可查看CPP中的成员变量
- 如何获取std::result_of函数的返回类型
- C++编译错误是由于使用 std::move 时运动构造函数与其他非运动构造函数之间的冲突
- 对此很陌生.质数函数运动建议