【发布时间】:2013-10-06 16:32:44
【问题描述】:
我正在尝试创建一个 bool Isprime 函数,该函数创建一个覆盖用户输入整数的素数列表,然后线性搜索该列表,如果输入整数在该列表中,则返回 true。但是,我遇到了一个问题,要弄清楚如何制作涵盖输入整数的列表(即,如果用户输入 4,则列表必须有 2、3 和 5)。
这是我到目前为止的代码(我知道这是完全错误的,我已经尝试过研究,但我就是不知道该怎么做。
bool Isprime(int N){
int i,tprime=3;
list<int>prime;
prime.push_back(2);
list<int>::iterator it;
for (it=prime.begin();it!=prime.end();it++){
if (*it<N){
while (i<sqrt(tprime)){
if(N%i!=0){
if(i<sqrt(tprime))
i++;
else prime.push_back(tprime);
}
tprime++;
}
}
}
for (it=prime.begin();it!=prime.end();it++){
if (*it==N)
return true;
}
return false;
}
你们能给我一些关于如何完成这项工作的提示吗?我可以弄清楚线性搜索。
【问题讨论】:
-
您有语法错误。显示您的真实代码。
-
“创建一个覆盖用户输入整数的素数列表”
-
@not-rightfold 这是我拥有的代码,除了线性搜索。什么是语法错误?
-
@Hippo,例如,如果用户输入 8,则列表必须包含 2、3、5、7 和 11。列表必须包含不超过等于或大于输入整数。
-
@JakeHafendorfer 你在
<int>和iterator之间缺少::。