所以我试图打印导致用户输入数字的素数。唯一的问题是它现在不打印数字。我没有发现代码有任何问题,当我与老师核对时,他说它应该可以工作。
static void primeNumbers(int n) {
System.out.println("All the prime numbers up to " + n + " are -->");
for (int count = 2; count == n; count++){
boolean isPrime = true;
for (int prime = 2; prime < n; prime = prime++) {
if (n % prime == 0) {
isPrime = false;
}
if(isPrime){
System.out.println(n);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
您应该使用以下内容:
public static void primeNumbers(int n) {
System.out.println("All the prime numbers up to " + n + " are -->");
for (int count = 2; count <= n; count++) {
int factors = 0;
for (int prime = 1; prime <= count; prime++) {
if (count % prime == 0) {
factors++;
}
}
if (factors == 2) {
System.out.println(count);
}
}
}
Run Code Online (Sandbox Code Playgroud)
在你之前的代码中,如果n是 2,它会运行一次,然后停止。如果n不是 2,它将永远不会运行。
此外,prime=prime++等于prime++
但是你的逻辑被打破了,因为在原始程序中,你从来没有存储过这个数字有多少个因数。我们有变量factors来帮助我们存储它。如果这个数有两个因数(例如factors==2),那么我们就知道它是素数。
当n是 10 时,它会打印:
All the prime numbers up to 10 are -->
2
3
5
7
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
160 次 |
| 最近记录: |