Tässä esimerkissä opit tulostamaan kaikki alkuluvut käyttäjän kirjoittamien kahden numeron välillä.
Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista C-ohjelmointiaiheista:
- C jos… muuta lausunto
- C silmukalle
- C tauko ja jatka
Näytä pääluvut kahden aikavälin välillä
#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; )
Tuotos
Syötä kaksi numeroa (välejä): 20 50 Pääluvut välillä 20 ja 50 ovat: 23 29 31 37 41 43 47
Tässä ohjelmassa while
silmukka toistetaan ( high-low-1
) kertaa.
Kussakin iteroinnissa low
tarkistetaan , onko alkuluku vai ei, ja arvon arvoa lisätään low
, 1
kunnes low
on yhtä suuri kuin high
.
Tältä sivulta saat lisätietoja siitä, onko luku alkuluku vai ei.
Jos käyttäjä syöttää ensin suuremman numeron, yllä oleva ohjelma ei toimi tarkoitetulla tavalla. Voit ratkaista tämän ongelman vaihtamalla numeroita.
Näytä alkunumerot, kun ensin syötetään suurempi numero
#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; )
Tältä sivulta saat tietää, kuinka voit näyttää kaikki kahden aikavälin väliset alkuluvut luomalla käyttäjän määrittämän toiminnon