C语言使用用户定义函数检查素数或阿姆斯特朗数的程序

要理解这个示例,您应该了解以下 C 编程 主题


    访问这些页面以学习如何检查一个数字是


    示例:检查素数和阿姆斯特朗数

    #include <math.h>
    #include <stdio.h>
    
    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", n);
       else
          printf("%d is not a prime number.\n", 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;
    }

    输出

    Enter a positive integer: 407
    407 is not a prime number.
    407 is an Armstrong number.
    

    在此程序中,创建了两个用户定义的函数 checkPrimeNumber()checkArmstrongNumber()

    checkPrimeNumber() 函数返回

    • 1,如果用户输入的数字是素数。
    • 0,如果用户输入的数字不是素数。

    类似地,checkArmstrongNumber() 函数返回

    • 1,如果用户输入的数字是阿姆斯特朗数。
    • 0,如果用户输入的数字不是阿姆斯特朗数。

    注意:checkPrimeNumber()checkArmstrongNumber() 函数中,flag 变量是函数的返回值。

    main() 中,flag 变量存储了 checkPrimeNumber()checkArmstrongNumber() 返回的值。

    你觉得这篇文章有帮助吗?

    我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

    以前所未有的方式学习和提高您的编程技能。

    试用 Programiz PRO
    • 交互式课程
    • 证书
    • AI 帮助
    • 2000+ 挑战