Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 家庭作业帮助:素数_C++_List_Primes - Fatal编程技术网

C++ 家庭作业帮助:素数

C++ 家庭作业帮助:素数,c++,list,primes,C++,List,Primes,我试图创建一个bool Isprime函数,它创建一个包含用户输入整数的素数列表,然后线性搜索该列表,如果输入整数在该列表中,则返回true。但是,我遇到了一个问题,即如何生成包含输入整数的列表(也就是说,如果用户输入4,列表必须有2、3和5) 这是我到目前为止的代码(我知道这是完全错误的,我尝试过做研究,但我就是不知道怎么做) bool Isprime(int N){ int i,tprime=3; list<int>prime; prime.push_back(2);

我试图创建一个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;
}
bool Isprime(int N){
inti,tptime=3;
listprime;
素数。推回(2);
列表::迭代器;
for(it=prime.begin();it!=prime.end();it++){

if(*it你有一个已知素数的列表,你可以用它来检查每个数字,看看它是否是素数。现在你试图在外层迭代这个列表。这似乎不太正确

以下是一种方法(与您尝试的方法相匹配):

  • 从3数到你要找的数字
  • 确定需要检查的最大素数值(即数字的平方根)
  • 对于每个数字,通过确定将其划分到已知素数列表中的每个元素的提醒,检查它是否为素数,直至需要检查的最大值
  • 如果该数字是素数,则将其添加到已知素数列表中

  • 出现语法错误。请显示实际代码。“这将创建一个包含用户输入整数的素数列表”@not rightfold这是我的代码,除了线性搜索。语法错误是什么?@Hippo,例如,如果用户输入8,列表必须包含2、3、5、7和11。列表必须包含等于或大于输入整数的素数。@JakeHafendorfer您缺少
    ::
    介于
    迭代器
    。我需要检查的最大素数值必须等于或大于输入整数,而不是平方根。如何在不遍历列表的情况下实现这一点?我的观点是,一旦遇到素数h大于当前正在检查的值的平方根。由于计算平方根是一个相当昂贵的操作,您希望对每个要检查是否为素数的数字执行一次。关于您的问题:我想我给了您非常精确的指示。您是指我编写代码吗?嗯,您知道,我不需要这些练习再也没有了。