【发布时间】:2018-07-31 04:55:30
【问题描述】:
我在理解该程序时遇到了一些麻烦,该程序在指南中使用了一个示例。它可能更像是一个数学问题,而不是一个编码问题。已编辑以包含代码!
// Find prime numbers between 2 and 100.
class Prime {
public static void main(String args[]) {
int x, y;
boolean isprime;
for(x=2; x < 100; x++) {
isprime = true;
for(y=2; y <= x/y; y++)
if((x%y) == 0) isprime = false;
if(isprime)
System.out.println(x + " is a prime number.");
}
}
}
这是我对程序的理解:
- 声明 x(可能的素数)和 y(除以 x 的数 - 如果除法可能 [除自身或 1 之外] 不产生余数,则它不是素数)。
- 声明一个布尔值来保存数字是否为素数。
- 创建一个 for 循环来测试 2 到 100 之间的每个数字
- 默认 isprime 布尔值为 true
创建一个 for 循环以将质数除以 2 和 ??? 之间的数字(我不明白这个 for 循环的条件部分)
我尝试在此处输入 system.out.print 选项以显示每次迭代时 x 和 y 的值,但它随后将非素数计算为素数。
- 如果将质数除以所有这些数字,并且有一个没有余数的数字,请将 boolean isprime 更改为 false。
- 如果在遍历所有值之后,所有值都有余数,则打印出这是一个素数。
【问题讨论】:
-
对不起!我不得不多次使用代码格式化按钮,但我得到了它的工作。
-
@JuanCarlosMendoza.. 可以删除不赞成票。 OP 确实收到了消息。
-
@displayname.. 请在您的标准输出 (system.out.print) 中添加一点“sn-p”。它会改善你的问题。