I det här exemplet lär du dig att skriva ut alla primtal mellan två siffror som anges av användaren.
För att förstå detta exempel bör du ha kunskap om följande C-programmeringsämnen:
- C if… else Uttalande
- C för loop
- C bryta och fortsätt
Visa primtal mellan två intervall
#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; )
Produktion
Ange två nummer (intervall): 20 50 Primtal mellan 20 och 50 är: 23 29 31 37 41 43 47
I det här programmet while
upprepas slingan ( high-low-1
) gånger.
I varje iteration low
kontrolleras huruvida ett primtal eller inte är och värdet på low
ökas med 1
tills low
är lika med high
.
Besök den här sidan för att lära dig mer om hur du kontrollerar om ett tal är primt eller inte.
Om användaren matar in det större numret först fungerar ovanstående program inte som avsett. Du kan lösa problemet genom att byta siffror.
Visa primtal när större nummer matas in först
#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; )
Besök den här sidan för att lära dig hur du kan visa alla primtal mellan de två intervallen genom att skapa en användardefinierad funktion