【发布时间】:2014-10-06 02:56:07
【问题描述】:
所以我为 3 到 200 之间的数字制作了一个简单的素数查找器。它必须使用布尔变量,仅供参考。不会发生错误。输出是:
3 到 200 之间的素数是:
3
5
7
为什么不继续?我一次又一次地在纸上画出来,找不到我的逻辑错误。
另外;我是手工写出来的,因为我不知道如何获取文件的内容。它存在于我没有 root 访问权限的远程主机上。有没有更好的方法来复制文件?
#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;
}
}
}
}
【问题讨论】:
-
for(int j = 2; ji; j++)行甚至不应该编译。如果您不粘贴实际代码,我们将无法为您提供帮助。 -
如果您使用 GUI 终端编辑代码,应该有某种可用的复制功能,尽管它特定于特定的应用程序(如果您指定有问题的应用程序,可能有人能回答)。
-
我将代码更改为对 OP 意图和简洁性的最佳猜测。我仍然无法弄清楚
count == (i - 2)是关于什么的。 -
@polarysekt 它们是“近乎素数”,即 11 ± 1。;) OP 非常接近工作生成器,也非常接近。 叹息
-
@msw 他正在为
2和i-1之间的每个数字计算+1,这与i互质。如果i是质数,那么所有这些都是互质数,其中有i-2。 (当然,计算有多少个数不互质,并在点击count == 1时打破j循环!)。