尝试打印100个奇数

时间:2019-02-27 20:31:06

标签: java

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

我将如何摆脱它并做我想做的事。

4 个答案:

答案 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;
}

您的实施无法正常工作,因为:

  1. 您不会从函数中返回boolean
  2. Java是按值传递,因此您的变量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;
}