Program C do wyświetlania liczb pierwszych w dwóch odstępach czasu

W tym przykładzie nauczysz się drukować wszystkie liczby pierwsze między dwiema liczbami wprowadzonymi przez użytkownika.

Aby zrozumieć ten przykład, powinieneś znać następujące tematy programowania w C:

  • C if… else Statement
  • C jak pętla
  • C przerwij i kontynuuj

Wyświetl liczby pierwsze między dwoma przedziałami

 #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; )

Wynik

 Wpisz dwie liczby (przedziały): 20 50 Liczby pierwsze od 20 do 50 to: 23 29 31 37 41 43 47 

W tym programie whilepętla jest iterowana ( high-low-1) razy.

W każdej iteracji sprawdzane lowjest , czy jest to liczba pierwsza, czy nie, a wartość lowjest zwiększana o 1aż do lowrówności high.

Odwiedź tę stronę, aby dowiedzieć się więcej o tym, jak sprawdzić, czy liczba jest liczbą pierwszą, czy nie.

Jeśli użytkownik wpisze najpierw większą liczbę, powyższy program nie będzie działał zgodnie z przeznaczeniem. Możesz rozwiązać ten problem, zamieniając liczby.

Wyświetlaj liczby pierwsze, gdy jako pierwsza zostanie wprowadzona większa liczba

 #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; )

Odwiedź tę stronę, aby dowiedzieć się, jak wyświetlić wszystkie liczby pierwsze między dwoma przedziałami, tworząc funkcję zdefiniowaną przez użytkownika

Interesujące artykuły...