查找质数但没有输出

Finding Prime Numbers But No Output

本文关键字:输出 查找      更新时间:2023-10-16

我正在编写一个程序,它将查找并输出从1到100的所有素数,并且我能够构建该程序,但是没有输出实际的素数。

这是我的代码:

#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
     for (int i = 1; i <= 100; i++)
{
    for (int j = i-1; j >= 2; j--)
    {
        if (i == 1)
            break;
        else if (j == 1)
            cout << i;
        else if (i % j == 0)
            break;
    }
}
return 0;
}

任何帮助将不胜感激!

为你准备的流行测验:

给定以下循环条件:

for (int j = i-1; j >= 2; j--)

我特别指的是循环迭代所需的"j >= 2"部分;所以你的流行测验问题如下:

你认为下面的if陈述会评估true吗?

     if (j == 1)

如果你相信j可以达到1的值,当循环条件j >= 2时,你能解释一下这是怎么发生的吗?

在我看来,它似乎永远不会发生,是吗?这就是您的代码不生成任何输出的原因。

j==1改成j==2后,还需要再加if来判断这个数字是否可以除以2,我认为这样会输出正确的质数。