素数相加(标签-c语言|关键词-循环语句)

您好,我在浏览c语言习题专栏中的循环语句中的第七题中有些地方比较困惑。

int n = 0;
    int i = 2;
    int j = 0;
    int sum = 0;
    cin >> n;
    for (j = 2; j <= n; j++) {
        for (i = 2; i < j; i++) {
            if (j % i == 0) {
                break;
            }
        }
        **if (i == j) { 
            sum = sum + j;**
        }
        
    }
    cout<<sum<

倒数第三行代码您的注释是说“判断为素数则将其相加”,我不太明白i与j相等时j为什么会是素数,以及他是怎么把素数加起来的。希望您能解答,非常感谢!

  • 内循环 判断 j % i == 0, 如果满足条件。 说明 j 存在 1 和 它本身外的其他 因子, 那就退出循环,这时 i 肯定不等于 j。 如果i 等于 j 说明 内循环了一遍,都没有找到 1 和 本身之外 其他的因子,那 这个 j 就是素数【也叫质数】
  • sum = sum + j 这一步就是 将 n以内的质数相加
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^