素数测试,2 位数字

2024-01-14

我想打印所有两位数长的质数。这是我的代码:

    for(int input = 11; input <= 99; input += 2){
        for(int x = 2; x < (int)Math.sqrt(input) + 1; x++){
            if(input%x != 0){
                System.out.println(input);
                break;
            }else{
                break;
            }
        }
    }

问题是它打印 35 或 49 等不是素数的数字。


您的素数测试不正确。您停止测试一个数字(input)一旦你找到一个除数input不可被整除。

这不是素数的定义 - 你需要测试input数字不能被整除any小于它的除数 - 换句话说,你需要测试所有的值x在你可以声明一个数字为素数之前。

您可以跳出检查循环input % x != 0input可以整除x,但当它不可整除时则不然 - 你需要继续检查这个条件何时为真!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

素数测试,2 位数字 的相关文章

随机推荐