Avatar
Adam Malý
Člen
Avatar
Adam Malý:

Čau dostali jsme ve škole ůkol v eclipse java
Chtěl bych nějak poradit jak to udělat nevím si rady moc tomu nerozumím. Díky

 
Odpovědět 20.10.2015 19:21
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Adam Malý
Jan Vargovský:

Tohle ti snad vyřeší nejhorší část problému:
https://cs.wikipedia.org/…%8D%C3%ADslo#…

Editováno 20.10.2015 19:29
 
Nahoru Odpovědět 20.10.2015 19:29
Avatar
sunspinx
Člen
Avatar
sunspinx:

Toto ti vypise prvocisla do 100, mozes to pouzit, vstup snad uz zvladnes a ostatne upravy. V pripade, ze nebudes vediet ako na to, tak ti s tym viem pomoct.

int x,y;
        boolean jePrvocislo;

        for (x = 2; x < 100; x++) {
            jePrvocislo = true;

            for (y = 2; y <= x/y; y++)
                if ((x%y) == 0) jePrvocislo = false;
            if (jePrvocislo)
                System.out.println("prvocisla su " +x);
            }
 
Nahoru Odpovědět 21.10.2015 16:11
Avatar
Adam Malý
Člen
Avatar
Avatar
Adam Malý
Člen
Avatar
Odpovídá na sunspinx
Adam Malý:

A když budu chtít vypsat prvočísla do čísla který zadá uživatel?

 
Nahoru Odpovědět 21.10.2015 16:49
Avatar
sunspinx
Člen
Avatar
sunspinx:

Toto je taky jednoduchsi sposob, este mozes pouzit try a catch pre osetrenie vstupu, ale neviem, ci to bolo v zadani. Takze toto by ti malo stacit. V pripade, ak si s tymto spokojny, tak mi nezabudni dat body za riesenie :-)

package prvocislo;
import java.util.Scanner;
/**
 *
 * @author sunspinxLOL
 */
public class Prvocislo {
    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        int x,y;
        boolean jePrvocislo;

        System.out.println("Zadajte cislo: ");

        int uCislo = Integer.parseInt(in.nextLine()); // Cislo, ktore zada pouzivatel

        for (x = 2; x < uCislo; x++) {
            jePrvocislo = true;

            for (y = 2; y <= x/y; y++)
                if ((x%y) == 0) jePrvocislo = false;
            if (jePrvocislo)
                System.out.println("prvocisla su " +x);
            }
        }
    }
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět  +1 21.10.2015 16:56
Avatar
Hit
Člen
Avatar
Odpovídá na Adam Malý
Hit:

Víš jak získat vstup od uživatele (Scanner)? Ulož si ten vstup někam do proměnný a tu použij místo 100 v kódu, co ti poslal sunspinx

Nahoru Odpovědět 21.10.2015 16:56
Life's not about how hard you can hit, it's about how hard you can GET hit and keep moving forward.
Avatar
Hit
Člen
Avatar
Odpovídá na sunspinx
Hit:

Damn it

Editováno 21.10.2015 16:57
Nahoru Odpovědět 21.10.2015 16:56
Life's not about how hard you can hit, it's about how hard you can GET hit and keep moving forward.
Avatar
Adam Malý
Člen
Avatar
Adam Malý:

Díky moc hoši :D

 
Nahoru Odpovědět 21.10.2015 17:07
Avatar
sunspinx
Člen
Avatar
Odpovídá na Hit
sunspinx:

Planoval som mu to vysvetlit, ale nakolko mi ten prispevok vyznel tak, ze uzivatel nema zaujem sa to naucit, ale len urobit ulohu, tak som to radsej spisal a poslal mu riesenie. :D

 
Nahoru Odpovědět  +1 21.10.2015 17:30
Avatar
Adam Malý
Člen
Avatar
Adam Malý:

Ještě bych se chtěl zeptat jak k tomu přidat aby uživatel zadal číslo od kterého se ty prvočísla budou načítat?

 
Nahoru Odpovědět 25.10.2015 16:45
Avatar
Hit
Člen
Avatar
Odpovídá na Adam Malý
Hit:
public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int start;
        int end;
        boolean primary;

        System.out.print("Zadejte dolní mez: ");
        if ((start = sc.nextInt()) < 2){
            System.err.println("Dolní mez nesmí být menší než 2!");
        }
        else {
            System.out.print("Zadejte horní mez: ");
            if ((end = sc.nextInt()) <= start){
                System.err.println("Horní mez musí být větší než dolní!");
            }
            else {
                for (int i = start; i <= end; i++) {
                    primary = true;
                    for (int j = 2; j <= i / j; j++) {
                        if ((i % j) == 0){
                            primary = false;
                        }
                    }
                    if (primary)
                        System.out.println("Prvocislo: " + i);
                }
            }
        }

    }
Editováno 25.10.2015 17:16
Nahoru Odpovědět 25.10.2015 17:14
Life's not about how hard you can hit, it's about how hard you can GET hit and keep moving forward.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.