Hallo en welkom terug.
Ik wilde je er nog een geven uitdaging, een andere opdracht.
Deze gaat natuurlijk om alles over arrays te hebben.
Ik wil dat je vertrouwd raakt met hoe hoe u een array gebruikt, hoe u toegang krijgt tot een
array en hoe u een array maakt.
Dus je zou een c-programma moeten schrijven die alle priemgetallen van 3
tot 100 gaat vinden.
En we gaan doen het zeer efficiënt.
Dus we gaan een beetje gebruiken algoritme dat ervoor zorgt dat
je een array gebruikt, maar een heel eenvoudig programma.
Het wordt gewoon weergegeven als uitvoer, alle priemgetallen van 3 tot 100.
En de reden waarom je geen 0 doet aan 3 is omdat je die hard gaat coderen,
het is vrij eenvoudig.
Eerste 2 onze eerste 2 priemgetallen zijn 1 en 2 die niet-0 zijn.
Er zal dus geen invoer zijn naar dit programma, gewoon uitvoeren.
En de output zal zijn elk priemgetal gescheiden door een
spatie op een enkele regel.
Het is vrij eenvoudig, helemaal tot 100.
Je zult moeten creëren een array die elk
priemgetal opslaat zoals het wordt gegenereerd.
Je kunt de eerste hard coderen 2 priemgetallen, die 2
en 3 zijn in de priemgetallenreeks.
Dus wat ik me hier voorstel is dat je zou een
array maken, je zou het priemgetallen noemen en je zou gewoon harde code de eerste 2 daar.
En het is belangrijk om hard te coderen
ze ook omdat het algoritme dat we gaan gebruiken om te vinden priemgetallen gaat
vergelijken voor andere priemgetallen, en Ik zal dat zo uitleggen.
U wilt de lussen gebruiken voor deze opdracht om alleen de priemgetallen tot
100 te vinden.
Dus meteen moet je stel je een lus voor om op zijn minst de priemgetallen
weer te geven die je hebt gevonden.
Dus dat zou waarschijnlijk het einde zijn lus, de
lus aan het einde van je programma die net doorgaat de primes-array en geeft alles
weer wat daarbinnen is.
als je nu alle prime vindt getallen tot 100, u hoeft de grootte van
de array niet te maken waarschijnlijk meer dan 50 want ik denk niet
dat er meer dan 50 prime zijn getallen, helemaal tot 100, maar je kunt
het niet instellen precies goed, want je weet niet hoeveel
priemgetallen er zijn.
Dus ik zou zeggen wanneer je de . maakt priemgetallen array, maak gewoon een grootte van 100.
Dus je hebt zeker een lus nodig om ze aan het einde uit te printen.
je hebt nog een lus nodig proberen de priemgetallen te vinden.
En je kunt de priemgetallen overal vinden algoritme dat je wilt, maar wat ik
zou gebruiken is dat ik zoiets als dit zou gebruiken omdat er meer reden is om een array te gebruiken
als je dit algoritme doet.
Dus de criteria die kunnen worden gebruikt
om een priemgetal te identificeren is dat een getal als priemgetal wordt beschouwd als het niet deelbaar is
door andere eerdere priemgetallen.
En er is nog meer aan dat algoritme, maar
dat is het uitgangspunt.
Wil je ook alleen kijken tot een bepaald aantal.
Dus je kunt het volgende gebruiken als een: x voorwaarde in de binnenste lus.
Dus nogmaals, wat heb je nodig om hier te hebben, is dat
je waarschijnlijk 2 lussen nodig hebt.
De derde hebben we al genoemd lus aan de
onderkant om de gegevens af te drukken, maar je zult moeten heb 2 lussen voor deze opdracht.
En het algoritme dat ik bespreek hier is een meer verbeterd algoritme.
Dit is dus waarom je het wilt doen.
Als je nu priemgetallen wilt vinden op een andere manier, dat is oké,
zolang je een array gebruikt, omdat de hele doel
van toewijzing is niet om priemgetallen te begrijpen, het is om te begrijpen hoe u arrays gebruikt.
Door te kijken naar de vorige gegenereerde priemgetallen die je dwingen een array te
gebruiken en je zou sla dat elk priemgetal op zoals het wordt gegenereerd,
zoals ik al zei.
En de andere manier die je kunt maken nog optimaler is dat je niet naar even getallen
wilt kijken.
Dus als je door elkaar gaat getal van 3 tot 100 en je
controleert of dat priemgetal is, dat kan negeer de even getallen, want even getallen
zullen nooit priemgetallen zijn.
Dus in de buitenste lus of de binnenste lus, kun je
controleren of het priemgetal deelbaar is door de andere priemgetallen of zorg ervoor dat het niet eens is, je kunt dat controleren
en het overslaan.
En dan deze andere asvoorwaarde in de binnenste lus is om ervoor te zorgen
dat de waarde van de p niet groter zijn dan de vierkantswortel van de priemgetallen, dat is een ander
deel van het algoritme.
Dus dit is misschien niet helemaal logisch, maar in feite zijn dit enkele van de criteria die
u moet volgen.
Sla alle controles voor even nummers over, en dan is het algoritme om te
zoeken naar eerdere priemgetallen die werden gegenereerd en ook om te controleren
of p al dan niet de vierkantswortel van de priemgetallen overschrijden, want dat is een
andere manier om te controleren op een priemgetal.
Dus je zult moeten hebben een for-lus die in principe van
5 naar 100 gaat en dan kun je verhoog dat met 2 zodat u alleen
naar oneven getallen zoekt.
En dan in een inner for loop jij als je
daarbinnen hebt, wil je van de ene naar de andere gaan waarde p gedeeld door prime sub-I is groter dan gelijk
aan prime sub-I.
En je wilt waarschijnlijk ook maken zeker weten dat het getal geen priemgetal is.
Dus je wilt niet meer dan a bepaalde check en dan wil je ook uit de binnenste lus
springen als je hebt eigenlijk een priemgetal gevonden.
En dus de manier waarop u kunt controleren op priemgetal als je huidige getal deelbaar
is door een eerder priemgetal, zodat je naar de priemgetallenreeks kunt kijken.
En als de modulus daarvoor gelijk is aan 0, dan heb
je geen priemgetal.
Anders, als je dit hebt gedaan hele check in deze
hele lus en je bent daar al weg het overschrijden van
de prime sub-I is groter dan prime sub-I de vierkantswortel probleem en je
hebt niet echt een priemgetal gevonden, dan betekent dat dat je dan dat priemgetal kunt toevoegen aan je priemgetal
en dan print gewoon de priemgetallen-array.
Dus het eigenlijke algoritme niet lijkt net zo verwarrend als ik het maak.
Nogmaals, probeer je te geven als zoveel mogelijk pseudocode-hints met
de buitenste for lus in de binnenste lus.
Maar je zult toegang moeten hebben tot
arrays, je gaat arrays lezen, je gaat kijken naar een array om eerdere waarden te zien.
Het zal je pakken echt bekend met arrays.
Dus veel succes, en ik zal zorgen voor een oplossing in de volgende lezing die
veel logischer zal zijn, maar deze zijn de vereisten en enkele hits.
Dank u.