素数问题 循环 java,No for循环将在for循环中运行 . 测试素数

出于某种原因,我的第二个for循环根本不会运行 . 事实上,我放在那里的任何其他类型的for循环也不会运行 . 我测试只是在println之后放置一个简单的for循环(“循环直到我们除以...”;并且那也不会运行 . 我为测试添加的简单for循环就是这个 .

for (int k = 0; k > 10; k++) {

System.out.println(k);

}

这显然只会打印从0到10的值 . 但它不会执行 . 这是程序的实际代码 . 如果有人想知道它应该做什么,它需要一个范围,硬编码测试从100到1000.它通过循环遍历从2到1000的所有数字来检查最后一个数字1000是否是素数/ 2查看余数是否为0,如果是,则该数字不是素数,打破循环并检查下一个数字 . 如果数字通过而没有将isPrime设置为false,那么它是一个素数,并且因为我们从最大数字开始,它是列表中最大的素数,因此我们打破外部循环并打印它 . 是的,这是使用RMI的家庭作业的一部分 . 我让RMI工作得很好但是算法给我带来麻烦所以我决定从一个新程序开始并在我将它放入PrimeImpl类之前获得算法 . 这是代码 .

public class PrimeTest {

public static void main(String[] args) {

int first = 100;

int last = 1000;

int biggest = 0;

boolean isPrime = true;

int i;

for (i = last; i > first - 1; i--) {

isPrime = true;

System.out.println("Assume " + i + " is prime.");

int halfI = i / 2;

System.out.println("Looping until we divide by " + halfI);

for (int j = 2; j > halfI; j++) {

// Loop not entering. This statement doesnt print. Why?

System.out.println(i + " modulus " + j + " = " + i % j);

if (i % j == 0) {

isPrime = false;

System.out.println("Not a prime");

break;

}

}

if (isPrime == true) {

System.out.println(i + " is a prime");

break;

}

}

if (isPrime == true) {

biggest = i;

}

if (isPrime == false) {

biggest = 0;

}

System.out.println(biggest);

}

}

我知道还有其他方法来测试素数,但目前我想尝试在这里使用我的方法 . 它似乎是有效的,如果它的工作,因为一旦我得到第一个素数,它的完成 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值