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.
Sprawdź czy liczba A dzieli sie przez liczby z zakresu 2 -> A-1?
Pojedyńczym ifem tego nie zrobisz.
Niestety, szybkiego algorytmu do generowania liczb pierwszych nie ma, naukowcy chcą go znaleźć ale nie znaleźli. Jak znajdą to internet nie będzie już bezpieczny, złamanie szyfrowania stosowanego w wielu miejscach okaże się proste jak budowa cepa. Tak więc jedyny sposób to ten podany przez kolegę wyżej.
W skrócie - iterujesz po liczbach z jakiegoś zakresu, sprawdzasz czy są pierwsze i drukujesz tylko te które są. Sprawdzenie może być trywialne (sprawdzasz, czy reszta z dzielenia przez kolejne liczby jest równa 0), lub nieco bardziej zoptypamlizowane. Np. http://www.algorytm.edu.pl/algorytmy-maturalne/badanie-czy-liczba-pierwsza.html korzysta z zależności, że wystarczy sprawdzać do pierwiastka. Chociaż implementacja niezbyt dobra, choćby bezsensowne mnożenie i*i w każdym kroku pętli.
Iterować też nie ma sensu po wszystkich. Od razu możesz pominąć np. liczby parzyste, więc wystarczy sprawdzać co drugą.
Jeśli program ma działać tylko w określonym zakresie, to najszybsze będzie stablicowanie. Czyli przelecenie całego zakresu i zapisanie wyników w tablicy (lub jakiejkolwiek innej strukturze danych). Później sprawdzasz tylko, czy liczba jest w tablicy.