Πρόγραμμα C για εμφάνιση πρώτων αριθμών μεταξύ δύο διαστημάτων

Σε αυτό το παράδειγμα, θα μάθετε να εκτυπώνετε όλους τους πρωταρχικούς αριθμούς μεταξύ δύο αριθμών που εισάγει ο χρήστης.

Για να κατανοήσετε αυτό το παράδειγμα, θα πρέπει να γνωρίζετε τις ακόλουθες θεματολογίες προγραμματισμού Γ:

  • C αν… αλλιώς Δήλωση
  • C για βρόχο
  • C διάλειμμα και συνέχεια

Εμφάνιση πρωταρχικών αριθμών μεταξύ δύο διαστημάτων

 #include int main() ( int low, high, i, flag; printf("Enter two numbers(intervals): "); scanf("%d %d", &low, &high); printf("Prime numbers between %d and %d are: ", low, high); // iteration until low is not equal to high while (low < high) ( flag = 0; // ignore numbers less than 2 if (low <= 1) ( ++low; continue; ) // if low is a non-prime number, flag will be 1 for (i = 2; i <= low / 2; ++i) ( if (low % i == 0) ( flag = 1; break; ) ) if (flag == 0) printf("%d ", low); // to check prime for the next number // increase low by 1 ++low; ) return 0; )

Παραγωγή

 Εισαγάγετε δύο αριθμούς (διαστήματα): 20 50 Οι πρωταρχικοί αριθμοί μεταξύ 20 και 50 είναι: 23 29 31 37 41 43 47 

Σε αυτό το πρόγραμμα, ο whileβρόχος επαναλαμβάνεται ( high-low-1) φορές.

Σε κάθε επανάληψη, lowελέγχεται αν είναι ένας πρωταρχικός αριθμός ή όχι και η τιμή του lowαυξάνεται έως 1ότου lowείναι ίση με high.

Επισκεφτείτε αυτήν τη σελίδα για να μάθετε περισσότερα σχετικά με το πώς να ελέγξετε αν ένας αριθμός είναι πρωταρχικός ή όχι.

Εάν ο χρήστης εισαγάγει τον μεγαλύτερο αριθμό πρώτα, το παραπάνω πρόγραμμα δεν λειτουργεί όπως έχει προβλεφθεί. Μπορείτε να επιλύσετε αυτό το ζήτημα αλλάζοντας τους αριθμούς.

Εμφάνιση πρώτων αριθμών κατά την εισαγωγή του μεγαλύτερου αριθμού

 #include int main() ( int low, high, i, flag, temp; printf("Enter two numbers(intervals): "); scanf("%d %d", &low, &high); // swap numbers if low is greather than high if (low> high) ( temp = low; low = high; high = temp; ) printf("Prime numbers between %d and %d are: ", low, high); while (low < high) ( flag = 0; // ignore numbers less than 2 if (low <= 1) ( ++low; continue; ) for (i = 2; i <= low / 2; ++i) ( if (low % i == 0) ( flag = 1; break; ) ) if (flag == 0) printf("%d ", low); ++low; ) return 0; )

Επισκεφτείτε αυτήν τη σελίδα για να μάθετε πώς μπορείτε να εμφανίσετε όλους τους πρωταρχικούς αριθμούς μεταξύ των δύο διαστημάτων δημιουργώντας μια λειτουργία που καθορίζεται από το χρήστη

ενδιαφέροντα άρθρα...