In dit voorbeeld leer je controleren of een door de gebruiker ingevoerd geheel getal kan worden uitgedrukt als de som van twee priemgetallen van alle mogelijke combinaties.
Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende C-programmeeronderwerpen:
- C if… else Statement
- C voor Loop
- C Functies
- C Door de gebruiker gedefinieerde functies
Om deze taak te volbrengen, maken we een functie met de naam checkPrime()
.
Het checkPrime()
geeft 1 terug als het getal dat aan de functie wordt doorgegeven een priemgetal is.
Geheel getal als een som van twee priemgetallen
#include int checkPrime(int n); int main() ( int n, i, flag = 0; printf("Enter a positive integer: "); scanf("%d", &n); for (i = 2; i <= n / 2; ++i) ( // condition for i to be a prime number if (checkPrime(i) == 1) ( // condition for n-i to be a prime number if (checkPrime(n - i) == 1) ( printf("%d = %d + %d", n, i, n - i); flag = 1; ) ) ) if (flag == 0) printf("%d cannot be expressed as the sum of two prime numbers.", n); return 0; ) // function to check prime number int checkPrime(int n) ( int i, isPrime = 1; for (i = 2; i <= n / 2; ++i) ( if (n % i == 0) ( isPrime = 0; break; ) ) return isPrime; )
Uitvoer
Voer een positief geheel getal in: 34 34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17