Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Ahojte můžete se někdo podívat, jestli mám tenhle program správně? Nevím proč nefunguje. Píše to že tam chybí hlavní třída HelloWorld, přitom tu jsem si vytvorila já, nebyla součástí, a nemá s tímhle prográmkem nic společného. Nevím..
class Prvocisla{
int N = 1000;
boolean[] pole = new boolean[N];
for (int i=2; i<pole.Lenght; i++){
pole[i] = true;
}
for (int i=2; i*i<pole.Lenght; i++){
pole[i]=true;
}
for (int i=2; i*i<pole.Lenght; i++){
if(pole[i]){
for (int j=i; j*i<pole.Lenght; i++){
pole[i*j]=false;
}
}
}
for (int i=2; i<pole.Lenght; i++){
if(pole[i]){
stringResult.Text += i.ToString()+ ",";
}
}
}
Offline
Zdravím,
je i dobré si dělat komentáře. Jinak, nekompiloval jsem to a dělal jsem to rychle.
Mohlo by to vypadat nějak takhle:
package program;
import java.awt.*;
class Program {
public static void main(String[] args) {
Prvocisla p = new Prvocisla(1000);
System.out.println("Prvocisla: " + p.write());
}
}
class Prvocisla {
boolean[] pole;
// konstruktor
Prvocisla(int N) {
pole = new boolean[N];
}
// metoda pro výpis
public void write() {
// od čísla 2 označíme všechny prvočísla na true
for (int i = 2; i < pole.Lenght; i++) {
pole[i] = true;
}
// označíme násobky
for (int i = 2; i*i < pole.Lenght; i++) {
pole[i] = true;
}
for (int i = 2; i*i < pole.Lenght; i++) {
if (pole[i]) {
for (int j = i; j*i < pole.Lenght; i++) {
pole[i*j] = false;
}
}
}
// a projdeme pole a tam kde je true v poli (prvočíslo), tak to vypíšeme
for (int i = 2; i < pole.Lenght; i++) {
if (pole[i]) {
stringResult.Text += i.ToString()+ ",";
}
}
}
}Offline
Stránky: 1