- Κώδικας: Επιλογή όλων
#include<stdio.h>
int main()
{
int primes[25];
int counter=1;
int start=3;
int prime;
int i;
primes[0]=2;
printf("2");
while(counter<25)
{
prime=1;
for(i=0; i<counter&′ i++)
if(!(start%primes[i])) prime=0;
if(prime)
{
printf("%d",start);
primes[counter++]=start;
}
start++;
}
{
printf("\n");
}
return 0;
}
ο κώδικας αυτός έχει μια έξοδο της μορφής 24 ακεραίων + 1 απο την printf("2");
παμε λοιπον να τον δουμε πως λειτουργει... αρχικα τυπώνεται το 2 λόγω της printf που βρίσκεται έξω απο τους βρόγχους.
Στην συνεχεια θα ξεκινήσουμε με counter=1 και εφοσον 1 < 25 μπαινει μεσα στην while ορίζοντας το prime σε μια Μη μηδενική τιμή.
Για i=0 μεσα στην for και για οσο το i που θα προκύψει απο την πραξη AND των μεταβλητών counter και prime δεν δωσει μηδενικη τιμη (απο οσο καταλαβα) συνεχιζουμε να το αυξανουμε κατα 1.
παρακατω ΕΑΝ το υπολοιπο της διαιρεσης του start = 3 εδω και του primes[0]=2 εδω υπαρχει το prime δεν εχει μηδενικη τιμη και αρα η if συνεχίζεται
οποτε εφοσον δεν εχει μηδενικη τιμη τυπωνει το 3
και στο primes [ 1 ] βαζει το 3. (δεν αυξανεται εδω το counter του primes παρα μονο μετα την εκχωρηση επειδη εχει τα ++ δεξια του (σωστος?!)
στην συνεχεια αυξανεται το start κατα 1 δηλαδη γινεται 4. και ξαναμπαινουμε στην while εφοσον παλι counter = 1 < 25 προχωρουμε... και το prime = 1
στην for για i=1 και i<counter&&prime οπου δινει παλι μη μηδενικη τιμη προχωρουμε... εφοσον τωρα ομως 4/3 ... τυπωνει παλι 4??? Ενω η εξοδος ειναι 2,3,5...δεν το καταλαβαινω εδω πως παει


