Witam! Jaka musi zostać spełniona instrukcja warunkowa żeby program wypisywał tylko liczy pierwsze? pierwsze to takie co się dzielą tylko przez siebie i 1. Proszę o pomoc.
0
2
W jaki sposób sprawdziłbyś na kartce czy liczba jest pierwsza?
0
Na temat odpowiadaj w postach.
To teraz to zaprogramuj ;-)
0
Jak już zaimplementujesz naiwne podejście pomyśl o usprawnieniach:
- Czy zawsze musisz sprawdzać do N-tej liczby? Okazuje się, że nie. Przykładowo: możesz podzielić przez 100 liczbę 101, aby sprawdzić, że jest liczbą pierwszą, ale wystarczy jak będziesz sprawdzał do sufitu z zaokrąglonego pierwiastka z tej liczby tj. w przypadku 101 wystarczy sprawdzać do 11 włącznie.
- Czy w ww. przypadku musisz dzielić przez wszystkie liczby od 2 do 11? Dzielenie przez 4 czy 6 jest niepotrzebne, bo już 2 i 3 sprawdziły taką podzielność- innymi słowy: dziel tylko przez liczby pierwsze.
0
Zrobiłem coś takiego i mi nie do końca wypisuje te liczby pierwsze. Generalnie wszystko mam dobrze tylko w 10 linijce zamiast tego sqrt trzeba coś innego dać tylko ja nie wiem co, pomóżcie:
package z1;
import static java.lang.Math.*;
public class Main {
public static void main(String[] args) {
int[] tab = new int [100];
boolean Lpierwsza;
for(int i=1; i<=100; i++)
{
Lpierwsza = true;
for(int j=2; j<sqrt(i); j++)
{
if(i%j==0)
{
Lpierwsza = false;
j=i;
}
}
if(Lpierwsza)
{
System.out.println(i);
}
}
}
}
2
for(int j=2; j<=sqrt(i); j++)
(znak <= zrobi Ci dobrze)
poza tym - Java to nie JavaScript
0
Dzięki serdeczne za pomoc, temat do zamknięcia :)