跳到主要内容

C 编程:使用用户定义的函数检查质数或阿姆斯特朗数

要理解这个示例,你应该具备以下C语言编程相关知识:

访问以下页面以了解如何检查一个数字是否为

示例:检查质数和阿姆斯壮数

#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
result += pow(remainder, n);
}

// 阿姆斯壮数的条件
if (round(result) == num)
flag = 1;
else
flag = 0;
return flag;
}

输出

请输入一个正整数:407
407不是质数。
407是阿姆斯壮数。

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

checkPrimeNumber() 函数返回:

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

同样地,checkArmstrongNumber() 函数返回:

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

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

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