我正在编程:原理和实践使用C ++,我在第4章,练习11.问题是你想要编写一个程序,检测1 ans 100之间的所有素数。这是我到目前为止
//This program finds the prime numbers between 1 and 100
#include <iostream>
#include <cmath>
#include <vector>
#include <algorithm>
using namespace std;
vector<int>primes;
bool ptest(int y)
{
int p=0, x=0;
for (x==0; x<primes.size(); ++p)
{
if (y%primes[x]==0)
{
return false;
}
return true;
}
}
int main()
{
int i=3;
primes.push_back(2);
vector<int>comp;
for (i==3; i<=100; ++i)
{
if (ptest(i)==true)
{
primes.push_back(i);
}
}
for (int x:primes)
{
cout << x << " ";
}
}
由于某种原因,该程序打印2,然后是3-100的所有赔率。我不确定我在这里缺少什么。
编辑:问题已得到解答。 p
来自之前的尝试,我忘了改变。这里的主要错误是我不知道return true
值属于循环之外。
谢谢
答案 0 :(得分:2)
错误:
Form.prototype.formValidate = function($form){
var self = this;
$form.on('submit', function(e){
e.preventDefault();
self.test();
});
};
位置错误。 循环之后应该是。return true;
必须在迭代中更新。警告:
x
循环中的第一个表达式x==0
毫无意义。for
没有意义,因为它没有使用它的值。试试这个:
p