在此示例中,您将学习通过创建两个单独的函数来检查整数是质数还是Armstrong(阿姆斯特朗数),还是两者都是。
要理解此示例,您应该了解以下C语言编程主题:
在这个程序中,创建两个用户定义的函数checkPrimeNumber()和checkArmstrongNumber()。
如果用户输入的数字是质数,则checkPrimeNumber()函数返回1。同样,如果用户输入的数字是阿姆斯特朗数字,checkArmstrongNumber()函数也会返回1。
访问这些页面以了解是否有数字
#include <math.h> #include <stdio.h> int checkPrimeNumber(int n); int checkArmstrongNumber(int n); int main() { int n, flag; printf("输入一个正整数: "); scanf("%d", &n); //检查质数 flag = checkPrimeNumber(n); if (flag == 1) printf("%d 是质数。\n", n); else printf("%d 不是质数。\n", n); //检查阿姆斯特朗数 flag = checkArmstrongNumber(n); if (flag == 1) printf("%d 是阿姆斯特朗数。", n); else printf("%d 不是阿姆斯特朗数。", n); return 0; } // 检查质数的函数 int checkPrimeNumber(int n) { int i, flag = 1, squareRoot; //计算平方根 squareRoot = sqrt(n); for (i = 2; i <= squareRoot; ++i) { //非质数的条件 if (n % i == 0) { flag = 0; break; } } return flag; } // 来检查阿姆斯壮数函数 int checkArmstrongNumber(int num) { int originalNum, remainder, n = 0, flag; double result = 0.0; // 将num的位数存储在n中 for (originalNum = num; originalNum != 0; ++n) { originalNum /= 10; } for (originalNum = num; originalNum != 0; originalNum /= 10) { remainder = originalNum % 10; // 存储结果中每个数字的幂的和 result += pow(remainder, n); } //阿姆斯特朗数条件 if (round(result) == num) flag = 1; else flag = 0; return flag; }
输出结果
输入一个正整数: 407 407 不是质数。 407 是阿姆斯特朗数。