Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

SPOJ Liczby pierwsze

#1
SPOJ Liczby pierwsze
Kod:
package polskispoj;

import java.util.Scanner;
class POLSKISPOJ
{
public static void main(String[] args)
{
    try{
 Scanner dane = new Scanner(System.in);
 Scanner liczby = new Scanner(System.in);
 int a = dane.nextInt();
 int x[] = new int[a];
 
 for(int j=0;j<a;j++){
     x[j] = liczby.nextInt();
 }      
      for(int j=0;j<a;j++){
          boolean pierwsza = true;      
          for(int i=2;i*i<=x[j];i++)
 if(x[j]%i==0  || x[j]<2 )
  pierwsza = false;

 if(pierwsza)
  System.out.println("TAK");
 else{
    System.out.println("NIE");
      }
      }
    }catch(ArrayIndexOutOfBoundsException e){
       
    }
       
   

     
}
}
Na portalu SPOJ cały czas wyrzuca mi "błąd wykonania (NZEC)". Proszę o pomoc w rozwiązaniu problemu.(JAVA)
 System operacyjny: windows_seven Przeglądarka: firefox
#2
RE: SPOJ Liczby pierwsze
Podaj link do zadania. SPOJ kiepsko sobie radzi z javą i czasami ma nietypowe problemy. Nie zamykasz też scannerów, co może też powodować problem.
 System operacyjny: windows_seven Przeglądarka: firefox
#3
RE: SPOJ Liczby pierwsze
http://pl.spoj.com/problems/PRIME_T/

Chyba, że SPOJ wymaga nazywnictwa "n" jako liczba testów.
 System operacyjny: windows_seven Przeglądarka: firefox
#4
RE: SPOJ Liczby pierwsze
Jeśli zgłaszasz rozwiązanie w Javie, to nie używaj deklaracji pakietu, a klasa nie może być publiczna (to masz akurat dobrze).
 System operacyjny: linux_ubuntu Przeglądarka: firefox
#5
RE: SPOJ Liczby pierwsze
Ok usunąłem pakiet ale i tak zgłasza ten sam błąd, zamknąłem także Scanner-y.

Może są błędy w wyliczaniu?
 System operacyjny: windows_seven Przeglądarka: firefox
#6
RE: SPOJ Liczby pierwsze
Błąd w wyliczaniu też jest, ale jeszcze do niego nie doszedłeś. Dla 1 wyświetlasz, że jest pierwsza, chociaż nie jest.

Przerobiłem trochę Twój kod, by liczył poprawnie i używał tylko jednego skanera. Po takim zabiegu poszło OK.

Przykład rozwiązania w Javie:

Spoiler
Kod:
import java.util.*;
import java.lang.*;

class Main {
    public static void main(String[] args) throws java.lang.Exception {

        try {
            Scanner dane = new Scanner(System.in);
            int a = dane.nextInt();
            int x[] = new int[a];

            for (int j = 0; j < a; j++) {
                x[j] = dane.nextInt();
            }
            for (int j = 0; j < a; j++) {
                boolean pierwsza = true;
                if (x[j] < 2)
                    pierwsza = false;
                for (int i = 2; (i * i <= x[j])&&pierwsza; i++)
                    if (x[j] % i == 0)
                        pierwsza = false;

                if (pierwsza)
                    System.out.println("TAK");
                else {
                    System.out.println("NIE");
                }
            }
        } catch (ArrayIndexOutOfBoundsException e) {

        }

    }
}

 System operacyjny: windows_seven Przeglądarka: firefox
#7
RE: SPOJ Liczby pierwsze
Taka sugestia - można na bieżąco wyświetlać wyniki, bo wyjście jest i tak przekierowane do pliku.
 System operacyjny: linux_ubuntu Przeglądarka: firefox
#8
RE: SPOJ Liczby pierwsze
Dzięki Szachista dobrze wiedzieć Wesoły
 System operacyjny: windows_seven Przeglądarka: firefox
#9
RE: SPOJ Liczby pierwsze
SPOJ jest kiepski do nauki javy, szczególnie gdy dojdziesz do etapu wydajności i czasu wykonania. Szybki kod zazwyczaj nie jest ładny, więc programujesz wbrew dobrym praktykom, tylko po to, by zmieścić się w założonym czasie.
 System operacyjny: windows_seven Przeglądarka: firefox
#10
RE: SPOJ Liczby pierwsze
Moja porada staraj się zaprojektować kod tak aby nie musieć mieć łapać ArrayIndexOutOfBoundsException. Jest to błąd który nigdy nie powinien wystąpić więc w poprawnie zaprojektowanym kodzie wiec nie ma sensu go catch'ować
 System operacyjny: windows_seven Przeglądarka: chrome
Programy: Polecane / Nowe / Inne




Podobne wątki (SPOJ Liczby pierwsze)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Program liczący liczby pierwsze Mersenne'a raistin 2 6975 12.03.2018, 12:51
Ostatni post: Szachista
  [VBA Excel] Zaokrąglanie liczby w górę Pioro 2 8004 13.02.2018, 21:25
Ostatni post: Pioro
  Konwertowanie słów na liczby Java Blendow 5 7360 19.08.2017, 21:17
Ostatni post: Szachista

Skocz do:


Wybrane wątki (SPOJ Liczby pierwsze)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Konwertowanie słów na liczby Java Blendow 5 7360 19.08.2017 21:17
Ostatni post: Szachista
  Kończenie i zamykanie skryptu vbs ottps 1 6816 16.08.2017 23:55
Ostatni post: broda99
  Podwojne menu wyboru w batch files kulis88 3 7099 12.08.2017 23:41
Ostatni post: broda99
  Walidacja tekstu w CSV,XLS w PHP Profedbond 9 7672 11.08.2017 09:10
Ostatni post: insanebear
  [VBS] String TheJohan8 5 7322 08.08.2017 00:11
Ostatni post: Ajgor
  Jaki kod pod buttony i progressbar w visualbasicu2010 Express? aktywny27 2 6663 06.08.2017 14:41
Ostatni post: ~Anonim
  [VB.Net] webbrowser a kody kreskowe DonCorleone 0 6221 03.08.2017 20:13
Ostatni post: DonCorleone
Ściana batch file ustawianie jednej wartosci zmiennej do kilku plikow kulis88 6 1870 03.08.2017 19:12
Ostatni post: kulis88
  [VBS] loop & if TheJohan8 0 6126 01.08.2017 18:40
Ostatni post: TheJohan8
  Co oznaczają te linijki ? maciex44 2 9081 28.07.2017 21:39
Ostatni post: Ajgor
  Tworzenie programu do instalacji maciex44 1 9418 28.07.2017 18:50
Ostatni post: TheJohan8
Exclamation [VBS] Skrypt błyskawicznie się kończy TheJohan8 7 6841 28.07.2017 16:29
Ostatni post: TheJohan8
  Java- wypisanie liczb, które nie są podane w tablicy , wypisanie liczb z tablicy all? ccomp 10 12806 16.07.2017 20:10
Ostatni post: ccomp
  Batch - zamknięcie programu jeśli jest włączony ~Anonim 2 6360 06.07.2017 15:29
Ostatni post: ~Anonim
  Jak napisać program typu konsola poleceń? toslaw1 6 7436 29.06.2017 18:58
Ostatni post: toslaw1