C ++ program annak ellenőrzésére, hogy egy szám kifejezhető-e két prímszám összegeként

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 boolvá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 = 2ig 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.

érdekes cikkek...