import java.util.*;
public class lab7 {
public static void isPrime(int n,boolean isPrime){
for (int div = 2; div < n; div++) {
if (n % div == 0) { // n is not prime
isPrime = false;
div = n;
}else{
isPrime=true;
}
}
}
// This program prints out the first 100 prime numbers
public static void main(String[] args) {
int count = 0;
int n = 1;
boolean isPrime=true;
// loop that iterates 100 times
while (count <= 100) {
// Use the isPrime method to check whether
// the number n is prime or not
if (isPrime(n)) {
System.out.println(n + " is prime");
count++;
}
// move on to the next n
n++;
}
}
}
我正在尝试使用名为isPrime的方法来获取代码以打印出前100个奇数。我一直说错了
lab7.java:35: error: method isPrime in class lab7 cannot be applied to given types;
if (isPrime(n)) {
^
required: int,boolean
found: int
我将如何摆脱它并做我想做的事。
答案 0 :(得分:3)
您的isPrime(int)
函数应如下所示:
public static boolean isPrime(int n) {
for (int div = 2; div < n; div++) {
if (n % div == 0) { // n is not prime
return false;
} else {
return true;
}
}
return false;
}
您的实施无法正常工作,因为:
boolean
isPrime
未更新还要确保不要弄乱素数和奇数之间的差异。
答案 1 :(得分:0)
我看到的问题是isPrime需要两个变量,在第35行的代码中,您仅提供了1,即整数。
答案 2 :(得分:0)
public class lab7 {
public static boolean isPrime(int n,boolean isPrime){
for (int div = 2; div < n; div++) {
if (n % div == 0) { // n is not prime
isPrime = false;
div = n;
}else{
isPrime=true;
}
}
return isPrime;
}
// This program prints out the first 100 prime numbers
public static void main(String[] args) {
int count = 0;
int n = 1;
boolean isPrime=true;
// loop that iterates 100 times
while (count <= 100) {
// Use the isPrime method to check whether
// the number n is prime or not
if (isPrime(n, isPrime)) {
System.out.println(n + " is prime");
count++;
}
// move on to the next n
n++;
}
}
}
我已更正代码。请检查。
答案 3 :(得分:0)
检查素数的简单方法
public static boolean isPrime(int num){
for(int i=2;i<num;i++){
if(num%i==0){
return false;
};
};
return num>1;
}