Liczby Pierwsze

0

Napisałam program do sprawdzania liczb pierwszych, ale pokazuje mi się błąd. Program ma poprosić o podanie dowolnej liczby, po podaniu jej przez użytkownika program określa liczbę. Będę bardzo wdzięczna za pomoc.

import java.util.Scanner;

public class LiczbyPierwsze{  
 public static void main(String args[]){  
    Scanner odczyt = new Scanner(System.in);
    System.out.println("Sprawdze czy liczba jest pierwsza, podaj dowolona liczbe calkowita.");
    int n=odczyt.nextLine(); {
    int i,m=0,flag=0;
    m=n/2;
    for(i=2;i<=m;i++){   
   if(n%i==0){    
   System.out.println("Liczba " +n+ " nie jest pierwsza.");    
   flag=1;    
   break;    
   }    
  }    
  if(flag==0)    
  System.out.println("Liczba " +n+ " jest pierwsza.");    
}  
}
}
0

Wiem, że powinno to wyglądać troszkę inaczej:

int n=odczyt.nextLine(); {

Jednak wtedy pokazują mi się błędy odnośnie n oraz operatorów binarnych.

Proszę pomoc, to moje pierwsze kroki z Java więc będę wdzięczna za prosty język :)

1

jaki błąd, Tworzysz temat ponownie a poprzednim razem był podany błąd a mianowicie

n=odczyt.nextLine(); 

wczytuje Stringa a nie inta.

0

Spróbuj otworzyć program, nie kompiluje się

0

nie wiem jak Tobie ale mi się kompiluje;)

podaj jakie masz błędy przy jakim kodzie, popraw to co pisałem ja i poprzednik.

1

Formatowanie dalej paskudne. Jeżeli sama nie potrafisz, to skorzystaj z dostępnych narzędzi, np:
http://www.tutorialspoint.com/online_java_formatter.htm

W lewe okno wklejasz kod, następnie w lewym górnym rogu okna dajesz Beautify i po prawej stronie masz wynik.
Raczej staraj się przestrzegać formatowania, nie tyle pomoże to innym w poprawianiu/znajdowaniu błędów w Twoim kodzie, co po prostu Tobie ułatwi pracę z kodem.

0

Dodaję załącznik z błędami a poniżej formatowanie :)

import java.util.Scanner;

public class LiczbyPierwsze {
    public static void main(String args[]) {
        Scanner odczyt = new Scanner(System.in);
        System.out.println("Sprawdze czy liczba jest pierwsza, podaj dowolona liczbe calkowita.");
        n = odczyt.nextLine(); {
            int i, m = 0, flag = 0;
            m = n / 2;
            for (i = 2; i <= m; i++) {
                if (n % i == 0) {
                    System.out.println("Liczba " + n + " nie jest pierwsza.");
                    flag = 1;
                    break;
                }
            }
            if (flag == 0)
                System.out.println("Liczba " + n + " jest pierwsza.");
        }
    }
}
0

Cannot find symbol - co to może znaczyć???
Zdefiniuj gdzieś czym jest n.

0

jak byk pisze że błąd masz w linii nr 7 czyli

 int n=odczyt.nextLine(); 

poczytaj o Klasach opakowujących typy proste oraz o konwersji Stringa na Int itp.

0
 int n=odczyt.nextLine(); 

Kiedy piszę w powyższy sposób pokazuje mi się komunikat, że String nie jest konwertowany do Int

1

A co Ci wcześniej pisali? Że nextLine() nie zwraca int tylko String.
Jeżeli chcesz w ten sposób zrobić, to musisz uzyć Integer.parseInt().

0

Słabo mi po prostu.
odczyt.nextInt();
Ale informatykę to ty sobie odpuść, serio, to nie dla ciebie. Skoro biadolisz już od godziny a nie zerknęłaś w dokumentacje ani w podpowiedzi co do tego jakie metody ma jeszcze Scanner.

0

Oprócz tego co pisano wyzej podstawowym bledem jest to ze badasz podzielnosc do polowy liczby. Wystarczy badac di sqrt z liczby ew. do sqrt plus 1

1 użytkowników online, w tym zalogowanych: 0, gości: 1