Kullanıcı Tanımlı Fonksiyonu Kullanarak Prime veya Armstrong Numarasını Kontrol Etmek için C Programı

Bu örnekte, iki ayrı fonksiyon oluşturarak bir tamsayının asal sayı mı, Armstrong mu yoksa her ikisi mi olduğunu kontrol etmeyi öğreneceksiniz.

Bu örneği anlamak için, aşağıdaki C programlama konuları hakkında bilgi sahibi olmalısınız:

  • Döngü için C
  • C while and do … while Loop
  • C ara ve devam et
  • C İşlevleri
  • C Programlamada Kullanıcı Tanımlı Fonksiyon Türleri

Bu programda iki kullanıcı tanımlı fonksiyon checkPrimeNumber()ve checkArmstrongNumber()oluşturulmuştur.

checkPrimeNumber()İşlevini verir 1kullanıcı tarafından girilen numara bir asal sayı ise. Benzer şekilde, checkArmstrongNumber()işlev 1, kullanıcı tarafından girilen sayı bir Armstrong numarasıysa da döndürür .

Bir numara olup olmadığını kontrol etmeyi öğrenmek için bu sayfaları ziyaret edin.

  • asal sayı ya da değil
  • bir Armstrong numarası ya da değil

Örnek: Prime ve Armstrong'u kontrol edin

 #include #include int checkPrimeNumber(int n); int checkArmstrongNumber(int n); int main() ( int n, flag; printf("Enter a positive integer: "); scanf("%d", &n); // check prime number flag = checkPrimeNumber(n); if (flag == 1) printf("%d is a prime number.", n); else printf("%d is not a prime number.", n); // check Armstrong number flag = checkArmstrongNumber(n); if (flag == 1) printf("%d is an Armstrong number.", n); else printf("%d is not an Armstrong number.", n); return 0; ) // function to check prime number int checkPrimeNumber(int n) ( int i, flag = 1, squareRoot; // computing the square root squareRoot = sqrt(n); for (i = 2; i <= squareRoot; ++i) ( // condition for non-prime number if (n % i == 0) ( flag = 0; break; ) ) return flag; ) // function to check Armstrong number int checkArmstrongNumber(int num) ( int originalNum, remainder, n = 0, flag; double result = 0.0; // store the number of digits of num in n for (originalNum = num; originalNum != 0; ++n) ( originalNum /= 10; ) for (originalNum = num; originalNum != 0; originalNum /= 10) ( remainder = originalNum % 10; // store the sum of the power of individual digits in result result += pow(remainder, n); ) // condition for Armstrong number if (round(result) == num) flag = 1; else flag = 0; return flag; )

Çıktı

Pozitif bir tam sayı girin: 407 407 asal sayı değil. 407, bir Armstrong numarasıdır.

Ilginç makaleler...