在C 中,如何在使用for loop的整数中找到所有连续的复合编号

In c++, how do you find all consecutive composite numbers for in an integer using for loops?

本文关键字:编号 复合 连续 整数 loop for      更新时间:2023-10-16

我想在给定问题中找到的基本思想就是这样。我有一个名为n的整数变量,用户可以在其中输入一个值。

int main()
{
    int n;
    std::cin >> n;

然后,从这一点开始,我创建了一个用于循环的循环,该循环复制了您通常如何确定创建的整数是否确实是Prime。但是,我想找到的不是数字是否是素数,而是要找到从2范围到输入的数字的所有复合材料。因此,如果输入为10。我应该从给定范围内获得复合材料4 6 8 9 10。我确实知道,第一件事是创建一个像这样的循环

for (int i = 2; i <= 10; i++)

然后嵌套另一个循环的条件,以测试给定范围内的每个数字是素数是否为素数或复合。

for (int i = 2; i <= n; i++)
    {
        for (int j = 2; j <= i; j++)
        {
            if (i % j == 0)
            {
                std::cout << i << " ";
            }
        }
    }

但是,这种方法并没有真正切割出来。在嵌套循环方法中,真正发生的事情是从2 3 2 4 5 2开始的,而一堆数字没有多大意义。这种方法是什么导致了输出的数字的古怪序列,我该怎么做才能解决这个问题?

打印了一个复合号码后,您希望j"循环的内部"终止和外部" i"循环前进,因此在std::cout添加break;之后。此外,您知道如果让j == i将任何数字都视为复合材料,则将" J"循环终止条件从j <= i更改为j < i。链接到工作代码....