Bir tamsayının (kullanıcı tarafından girilen) bir asal sayı olup olmadığını kontrol etmek için, for döngüsü kullanıp kullanmadığına ve if… else deyimine örnek.
Bu örneği anlamak için, aşağıdaki C ++ programlama konuları hakkında bilgi sahibi olmalısınız:
- C ++ if, if… else ve Nested if… else
- Döngü için C ++
- C ++ break ve continue İfadesi
Yalnızca 1'e bölünebilen pozitif bir tam sayı ve kendisi asal sayı olarak bilinir.
Örneğin: 13 bir asal sayıdır çünkü yalnızca 1 ve 13'e bölünebilir, ancak 15 asal sayı değildir çünkü 1, 3, 5 ve 15'e bölünebilir.
Not: 0 ve 1 asal sayılar değildir.
Örnek: Asal Sayıyı Kontrol Et
#include using namespace std; int main() ( int i, n; bool isPrime = true; cout <> n; // 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; ) ) ) if (isPrime) cout << n << " is a prime number"; else cout << n << " is not a prime number"; return 0; )
Çıktı
Pozitif bir tam sayı girin: 29 29 bir asal sayıdır.
Bu program kullanıcıdan pozitif bir tamsayı alır ve bunu n değişkeninde saklar.
Boolean değişkeni isPrime'ın true
programın başında başlatıldığına dikkat edin .
Yana 0 ve 1 asal sayılar değildir girdi sayısını bu sayıların bir ya değilse, öncelikle kontrol edin. Giriş numarası 0 veya 1 ise , isPrime değeri olarak ayarlanır false
.
Aksi takdirde, isPrime'ın başlangıç değeri değişmeden bırakılır ve for
kullanıcı tarafından girilen sayının i ile tamamen bölünebilir olup olmadığını kontrol eden döngü yürütülür.
for (i = 2; i <= n / 2; ++i) ( if (n % i == 0) ( isPrime = false; break; ) )
for
Döngü çalışır i == 2
için i <= n / 2
ve her bir tekranyla 1 ile i değerini arttırır.
Döngü i == n / 2
, n için sayının ötesinde herhangi bir faktör bulamadığımız için sona erer n / 2
. Yani, ötesindeki tüm yinelemeler n / 2
gereksizdir.
Kullanıcı tarafından girilen sayı i ile tam olarak bölünebiliyorsa, o zaman isPrime olarak ayarlanır false
ve sayı asal sayı olmaz.
Ancak, girdi numarası döngünün tamamı boyunca i ile mükemmel bir şekilde bölünemezse, bu, giriş sayısının yalnızca 1'e ve bu sayının kendisine bölünebileceği anlamına gelir.
Yani verilen sayı bir asal sayıdır.
Durumda n == 2
, for
döngü çalışmaz ve isPrime değeri kalır true
.