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 while
pętla jest iterowana ( high-low-1
) razy.
W każdej iteracji sprawdzane low
jest , czy jest to liczba pierwsza, czy nie, a wartość low
jest zwiększana o 1
aż do low
ró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