Witam ponownie.
Chciałem ci dać inny wyzwanie, kolejne zadanie.
Oczywiście, ten jest w drodze chodzi o tablice.
Chcę, żebyś się zapoznał korzystać z tablicy, jak uzyskać dostęp do tablicy
i jak utworzyć tablicę.
Więc powinieneś napisać program w C. to znajdzie wszystkie liczby pierwsze
od 3 do 100.
I zrobimy to bardzo wydajnie.
Więc użyjemy trochę algorytm, który sprawia, że
używasz tablicy, ale bardzo prostego programu.
Po prostu wyświetli się jako wynik, wszystkie liczby pierwsze od 3 do 100.
I powód, dla którego nie robisz 0 3 jest takie, ponieważ zamierzasz je zakodować na sztywno,
jest to całkiem proste.
Pierwsze 2 nasze pierwsze 2 liczby pierwsze to 1 i 2, które są różne od 0.
Więc nie będzie żadnego wkładu do tego programu, po prostu wypisz.
A wynik będzie każda liczba pierwsza oddzielona
spacją w jednym wierszu.
To całkiem proste, aż do 100.
Będziesz musiał tworzyć tablica, która będzie przechowywać
każdą liczbę pierwszą podczas jej generowania.
Możesz na stałe zakodować pierwszy 2 liczby pierwsze, które są 2
i 3 w tablicy liczb pierwszych.
Więc wyobrażam sobie tutaj to stworzyłbyś tablicę, nazwałbyś
ją liczbami pierwszymi i po prostu zakoduj na stałe pierwsze 2 tam.
I ważne jest, aby twardy kod je
też ze względu na algorytm, którego użyjemy do znalezienia liczby pierwsze będą porównywane
z dowolnymi innymi liczbami pierwszymi, i Wyjaśnię to za chwilę.
Chcesz wykorzystać pętle aby to zadanie znajdowało tylko liczby pierwsze
do 100.
Więc od razu powinieneś wyobraź sobie pętlę przynajmniej po to,
by wyświetlić znalezione liczby pierwsze.
Więc to prawdopodobnie byłby koniec pętla, pętla na
końcu twojego programu, przez którą właśnie przechodzi tablica liczb pierwszych i wyświetla wszystko,
co tam jest.
teraz, jeśli znajdujesz całą liczbę pierwszą liczby do 100, nie będziesz musiał tworzyć
rozmiaru tablicy prawdopodobnie więcej niż 50, ponieważ nie sądzę, aby było więcej
niż 50 pierwszych liczby, aż do 100, ale nie będziesz w stanie
tego ustawić dokładnie poprawnie, ponieważ nie wiesz, ile jest
liczb pierwszych.
Więc powiedziałbym, kiedy tworzysz plik tablica liczb pierwszych, po prostu zmień rozmiar na 100.
Więc zdecydowanie potrzebujesz pętli wydrukować je na końcu.
będziesz potrzebować kolejnej pętli aby spróbować znaleźć liczby pierwsze.
I możesz znaleźć dowolne liczby pierwsze algorytm, który chcesz,
ale użyłbym czegoś takiego ponieważ jest więcej powodów, aby używać tablicy, jeśli wykonujesz
ten algorytm.
A więc kryteria, które można zastosować
identyfikacja liczby pierwszej oznacza, że jest ona uważana za pierwszą jeśli nie jest podzielna równo przez
inne poprzednie liczby pierwsze.
Jest też więcej do tego algorytmu, ale to
jest punkt wyjścia.
Chcesz też tylko patrzeć do określonej liczby.
Możesz więc użyć następującego pliku jako pliku x warunek w najbardziej wewnętrznej pętli.
Więc znowu, czego będziesz potrzebować aby mieć tutaj, prawdopodobnie
będziesz potrzebować 2 pętli.
Wspomnieliśmy już o trzecim pętla na
dole drukuje dane, ale będziesz musiał mają 2 pętle do tego zadania.
I algorytm, o którym mówię tutaj jest bardziej ulepszony algorytm.
Dlatego właśnie chcesz to zrobić.
Teraz, jeśli chcesz znaleźć liczby pierwsze w inny sposób, jest
to w porządku, o ile używasz tablicy,
ponieważ jedynym celem zadania nie jest zrozumienie liczb pierwszych aby zrozumieć, jak używać tablic.
Patrząc na poprzednie wygenerował liczby pierwsze, które zmusza cię do użycia
tablicy, a ty byś zapisz, że każda liczba pierwsza jest
generowana, jak wspomniałem.
I w inny sposób, który możesz zrobić jeszcze bardziej optymalne jest to, że nie chcesz patrzeć na
liczby parzyste.
Więc jeśli przechodzisz przez każdy liczba od 3 do 100 i sprawdzasz,
czy to liczba pierwsza, możesz zignoruj liczby parzyste, ponieważ liczby parzyste nigdy
nie będą liczbami pierwszymi.
Więc w najbardziej zewnętrznej pętli lub najbardziej wewnętrznej pętli,
możesz sprawdzić, czy liczba pierwsza jest podzielna przez inne liczby pierwsze lub upewnij się, że nawet nie możesz tego
sprawdzić i pominąć.
A potem ten inny warunek osi w najbardziej wewnętrznej pętli
jest upewnienie się, że wartość p nie przekroczyć pierwiastek kwadratowy liczb pierwszych, to
inna część algorytmu.
To może nie mieć pełnego sensu, ale w zasadzie są to niektóre z kryteriów, które
chcę, abyś przestrzegał.
Pomiń wszelkie sprawdzanie liczb parzystych, a następnie algorytm polega na wyszukaniu
wszelkich poprzednich liczb pierwszych które zostały wygenerowane, a także sprawdzić,
czy p nie przekroczyć pierwiastek kwadratowy z liczb pierwszych, ponieważ to jest
inna sposób na sprawdzenie liczby pierwszej.
Więc będziesz musiał pętla for, która w zasadzie przechodzi od
5 do 100, a potem możesz zwiększ ją o 2, aby szukać
tylko liczb nieparzystych.
A potem w wewnętrznej pętli for you masz w środku,
będziesz chciał przejść od 1 do tego drugiego wartość p podzielona przez pierwszą sub-I jest większa niż równa
pierwszej sub-I.
I prawdopodobnie będziesz też chciał zrobić upewnij się, że liczba nie jest liczbą pierwszą.
Więc nie chcesz przekroczyć pewne sprawdzenie, a następnie chcesz również wyskoczyć z pętli
wewnętrznej, jeśli faktycznie znalazłeś liczbę pierwszą.
A więc sposób, w jaki możesz to sprawdzić liczba pierwsza, jeśli twoja obecna liczba jest podzielna
przez jakąkolwiek poprzednią liczbę pierwszą, więc możesz spojrzeć na tablicę liczb pierwszych.
A jeśli moduł do tego jest równe 0, to nie
masz liczby pierwszej.
W przeciwnym razie, jeśli to zrobiłeś Całość sprawdź
w całej pętli i już stamtąd wyszedłeś przekroczenie liczby pierwszej sub-I
jest większe od liczby pierwszej sub-I pierwiastka kwadratowego a właściwie nie znalazłeś liczby
pierwszej, to znaczy że możesz następnie dodać tę liczbę pierwszą do swojej tablicy liczb pierwszych, a następnie
po prostu wydrukuj tablicę liczb pierwszych.
Więc rzeczywisty algorytm nie wydają się tak zagmatwane, jak to robię.
Ponownie spróbuj podać jako jak najwięcej podpowiedzi pseudokodów z
zewnętrznym for pętla w wewnętrznej pętli for.
Ale będziesz potrzebować dostępu tablice,
będziesz czytać tablice, na co będziesz patrzeć tablica, aby zobaczyć poprzednie wartości.
Dopadnie cię naprawdę zaznajomiony z tablicami.
Więc powodzenia i zapewnię rozwiązanie w następnym wykładzie, które będzie miało dużo
więcej sensu, ale te są wymagania i niektóre trafienia.
Dziękuję Ci.