Mam takie pytanie a raczej prośbę o wytykanie mi błędów w kodzie :D
Uczę się trochę Javy i chciałbym opinii osób które są lepsze "w te klocki" ode mnie.
Kod pisany dla rozwiązania zadania ze spoju:
http://pl.spoj.com/problems/PRIME_T/
program został przyjęty;
Pisałem go starając się używać w miarę obiektowo (przynajmniej mi się tak wydaje:D).
Chciałbym przyłożyć wagę do jakości kodu.
Liczę że ktoś powytyka mi błędy, że powinny być osobne klasy, itp.
package liczby;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
public class liczby
{
public static void main(String [] args) throws NumberFormatException, IOException
{
Liczbya liczby= new Liczbya();
liczby.setLiczba_testow();
liczby.ustaw_tablice_testow();
liczby.pobieraj_testy();
liczby.wypisz_wyjscie();
}
}
// klasa obsługi programu
class Liczbya
{
private BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
private PrintWriter print=new PrintWriter(new OutputStreamWriter(System.out), true);
private int liczba_testow;
private int[] tablica_testow;
//pobieranie ilosci testow do sprawdzenia
public void setLiczba_testow() throws NumberFormatException, IOException
{
do
{
liczba_testow=Integer.parseInt(br.readLine());
}while(liczba_testow>=100000);
}
// definicja tablicy testow
public void ustaw_tablice_testow()
{
tablica_testow=new int[liczba_testow];
}
//wprowadzanie testow do tablicy
public void pobieraj_testy() throws NumberFormatException, IOException
{
for(int i=0;i<tablica_testow.length;i++)
{
int x=0;
do
{
x=Integer.parseInt(br.readLine());
}while(x<0&&x>100000);
tablica_testow[i]=x;
}
}
//wykonywanie testow
private boolean liczba_pierwsza(int liczba)
{
int pier=(int) Math.sqrt((double)liczba);
if(liczba==1)return(false);
for(int i=2;i<=pier;i++)
{
if (liczba%i==0)
{
return(false);
}
}
return(true);
}
//wypisywanie wynikow testow
public void wypisz_wyjscie()
{
for(int e:tablica_testow)
{
if(liczba_pierwsza(e))
{
print.println("TAK");
}
else
{
print.println("NIE");
}
}
}
}