Példa annak ellenőrzésére, hogy egy (a felhasználó által beírt) egész szám kifejezhető-e a funkciók használatával az összes lehetséges kombináció két prímszámának összegeként.
A példa megértéséhez ismernie kell a következő C ++ programozási témákat:
- C ++ a hurokhoz
- C ++ ha, ha… más, és beágyazott, ha … más
- C ++ függvények
- A felhasználó által definiált függvények típusai a C ++ nyelven
Ez a program vesz egy pozitív egész számot a felhasználótól, és ellenőrzi, hogy ez a szám kifejezhető-e két prímszám összegeként.
Ha a szám kifejezhető két prímszám összegeként, akkor a kimenet a prímszámok kombinációját mutatja.
A feladat végrehajtásához egy felhasználó által definiált függvény jön létre a prímszám ellenőrzésére.
Példa: Ellenőrizze, hogy egy szám kifejezhető-e két prímszám összegeként
#include using namespace std; bool checkPrime(int n); int main() ( int n, i; bool flag = false; cout <> n; for(i = 2; i <= n/2; ++i) ( if (checkPrime(i)) ( if (checkPrime(n - i)) ( cout << n << " = " << i << " + " << n-i << endl; flag = true; ) ) ) if (!flag) cout << n << " can't be expressed as sum of two prime numbers."; return 0; ) // Check prime number bool checkPrime(int n) ( int i; bool isPrime = true; // 0 and 1 are not prime numbers if (n == 0 || n == 1) ( isPrime = false; ) else ( for(i = 2; i <= n/2; ++i) ( if(n % i == 0) ( isPrime = false; break; ) ) ) return isPrime; )
Kimenet
Adjon meg pozitív egész számot: 34 34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17
Ebben a programban a checkPrime()
függvény segítségével ellenőrizzük, hogy egy szám prím-e vagy sem.
In main()
, veszünk egy számot a felhasználótól, és eltároljuk az n változóban.
Inicializálunk egy bool
változó jelzőt is false
. Ezt a változót használjuk annak meghatározására, hogy a bemeneti szám kifejezhető-e két prímszám összegeként.
Ezután iterálunk egy hurkot a- i = 2
ig i = n/2
. Minden iterációban ellenőrizzük, hogy i prímszám-e vagy sem.
Ha i prím, akkor ellenőrizzük, hogy n - i prím-e vagy sem.
Ha n - i is prím, akkor tudjuk, hogy n kifejezhető két i és n - i prímszám összegeként.
Tehát kinyomtatjuk az eredményt a képernyőn, és megváltoztatjuk a flag értékét true
. Ellenkező esetben a zászló marad false
.
Ez a folyamat a hurok végéig tart.
Ha a zászló továbbra is áll false
, akkor tudjuk, hogy n nem fejezhető ki két prím összegeként, és ezt az üzenetet kinyomtatjuk a képernyőn.