c++ - 嵌套循环和素数

标签 c++ loops for-loop nested primes

您好,我现在花了很多时间试图弄清楚我的教程给出的这个示例是如何工作的,有一些事情我不明白,是的,我已经在网上搜索了帮助,但是没有太多东西我真正想了解的是这个具体的例子。

我不明白的第一件事是 'i' 和 'j' = 2 并且两个 for 循环都有 i++ 和 j++,这不会使 'i' 和 'j' 始终相等吗? 因此,在第二个 for 循环中,如果 'j' 必须小于例如 4/4 = 1 那么它必须小于 1?当它被初始化为2时。

int i, j;

for(i=2; i<100; i++)
{
    for(j=2; j <= (i/j); j++)
    {
    if(!(i%j))
        break; // if factor found, not prime
    if(j > (i/j))
        cout << i << " is prime\n";
    }
}

最佳答案

both the for loops has i++ and j++, won't that make 'i' and 'j' equal all the time?

不! i++ 递增外部循环,j++ 递增内部循环。对于外循环的每一轮,内循环都可以迭代(并因此递增)多次。因此,对于外循环的每一轮,j 都会在内循环中遍历从 2i/j 的值。

我建议您在调试器中尝试此代码,或在笔和纸上模拟它以了解发生了什么。

关于c++ - 嵌套循环和素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24995234/

相关文章:

Java:查找平均线和编号线

javascript - for 循环在第一次迭代时停止

c++ - 编译错误 : `‘error_category’ does not name a type` with g++ 6. 3.0

c++ - 数组上的 C++ for 循环

python - 查找给定范围内的数字,使给定列表中任何元素的数字的 gcd 始终为 1

java - 在 Java 中使用循环的数字模式

c++ - 如何访问超出范围的变量?

c++ - 以 posix 方式绑定(bind)到特定的 NIC

javascript - 内部循环中没有初始化语句的嵌套 for 循环可防止外部循环在 JavaScript 中循环

java - [ ][ ] 和 if 语句的问题