c++ - 素数查找器找不到素数,在 7 后停止

标签 c++ linux primes

所以我为 3 到 200 之间的数字做了一个简单的素数查找器。它必须使用一个 bool 变量,仅供引用。没有错误发生。输出是:

The prime numbers between 3 and 200 are:
3
5
7

为什么不继续?我在纸上画了一遍又一遍,找不到我的逻辑错误。

此外;我手写了这个,因为我不知道如何获取我的文件的内容。它存在于我没有根访问权限的远程主机上。有没有更好的方法来复制文件?

#include <iostream>
using namespace std;

int main()
{
int count=0;
cout<<"The prime numbers between 3 and 200 are: "<<endl;

for (int i=3;i<=200;i++)
    {
     for (int j=2;j<i;j++)
        {
           bool ptest=i%j;
           if (!ptest)
             {
               break;
             }
           else if (ptest)
             {
                count=count+1;
                if (count==(i-2))
                cout<<i<<endl;
             }
         }
    }
}

最佳答案

j 循环中使用后,您忘记将 count 设置回 0。移动线:

int count = 0;

在第一个 for 循环中。然后你的程序就可以正常工作了(虽然正如 msw 指出的那样,这不是最有效的技术!)

关于c++ - 素数查找器找不到素数,在 7 后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26209470/

相关文章:

linux - ":?"在此 shell 命令中意味着什么?

python - 根据费马小定理解释代码以检查素数

Python 初学者循环(寻找素数)

c - 针对内存优化的初筛

c++ - 对 InitGL 的 undefined reference

C++ - 如何分块文件以进行同步/异步处理?

c++ - 如何在给定 dims+1 点的情况下找到任意维球体的中心和半径

c - GTK+2 : Drawing above other widgets transparently

linux - 如何在没有 root 的情况下修复损坏的 sudoers 文件

c++ - Google pnacl-clang++下如何搭建Leptonica库