2013-02-28 3 views
0
public static boolean prime(int n){ 
    if(n<=1) 
     return false; 
    int z=2; 
    if(n==2) 
     return true; 
    while(z<Math.sqrt(n)){ 
     if(z mod n==0) 
      return false; 
     z++; 
    } 
    return true; 
} 

Какие-либо подсказки, что не так с моим кодом? Я получаю 7 ошибок «класса, интерфейса или перечисления» ожидает ...Несколько ошибок: класс, интерфейс или enum ожидается

+0

О вашем алгоритме, он будет работать быстрее, если вы начнете с z = 3 и сделаете z + = 2 в вашем цикле while. – LaGrandMere

ответ

0

«класс, интерфейс или перечислений ожидается «ошибка возникает в основном из-за отсутствия {} фигурных скобок. Проверьте свою программу полностью.

Если вышеупомянутый код является вашим кодом, вы должны инкапсулировать его внутри класса. Не забудьте написать main().

В java нет ключевого слова 'mod'. Вместо этого используйте «%».

import java.util.*; 

class Prime 
{ 

public ...........main(.... args[]) 

{ 
//accept integer 

if(prime(n))//calling prime() 
.. 
} 

, а затем ваш метод .. Приветствия!

2

Если это весь код, вам нужно будет заключить его в class как ошибка указывает :)

Во-вторых, нет ключевого слова mod в Java, заменить на %. Ввод 2 вместе:

public class MyPrimeTest { 

    public static void main(String[] args) { 
     boolean primeCheck = prime(43); 
     ... 
    } 

    public static boolean prime(int n) { 
     if (n <= 1) { 
      return false; 
     } 
     int z = 2; 
     if (n == 2) { 
      return true; 
     } 
     while (z < Math.sqrt(n)) { 
      if (z % n == 0) { 
       return false; 
      } 
      z++; 
     } 

     return true; 
    } 
} 
4

Вы не можете выполнить самостоятельный код, все должно существовать в классе, интерфейсе или перечисления.

Это должно жить внутри класса. Это должно быть в файле под названием MyClass.java

E.g.

public class MyClass { 

    public static boolean prime(int n){ 
     if(n<=1) 
      return false; 
     int z=2; 
     if(n==2) 
      return true; 
     while(z<Math.sqrt(n)){ 
      if(z mod n==0) 
       return false; 
      z++; 
     } 
    return true; 

    } 

} 

Затем он может быть вызван запуском MyClass.prime(7);

Как уже отмечалось другими, мода также является недействительным ключевое слово и должно быть заменено% оператора

+0

Но что такое ** mod **? – Maroun

+0

Это тоже неправильно, но явно не ошибка, которую он получает. Прочтите вопрос название – cowls

+0

Вы правы, +1. – Maroun

Смежные вопросы