📅  最后修改于: 2023-12-03 15:30:15.900000             🧑  作者: Mango
本程序为C语言编写的用户定义功能,可用于检查输入的数是否为素数或阿姆斯壮数。
素数,又称质数,是指除了1和该数本身外,不能被其他数整除的自然数。下面是素数检查的代码:
#include <stdio.h>
int isPrime(int n)
{
int i;
for (i = 2; i <= n / 2; i++)
{
if (n % i == 0)
{
return 0;
}
}
return 1;
}
int main()
{
int n;
printf("请输入一个自然数:");
scanf("%d", &n);
if (isPrime(n))
{
printf("%d是素数。\n", n);
}
else
{
printf("%d不是素数。\n", n);
}
return 0;
}
首先定义了一个函数 isPrime
,用于判断一个自然数是否为素数。在 main
函数中,先通过 scanf
获取输入的自然数,再调用 isPrime
函数进行判断,最后输出结果。
阿姆斯壮数,又称自恋数或水仙花数,是指一个n位数(n≥3)的每个数位上的数字的n次幂之和等于该数本身。例如,153是一个三位数的阿姆斯壮数,因为$1^3+5^3+3^3=153$。下面是阿姆斯壮数检查的代码:
#include <stdio.h>
#include <math.h>
int isArmstrong(int n)
{
int sum = 0, temp = n, digit = 0;
while (temp)
{
digit++; // 统计位数
temp /= 10;
}
temp = n;
while (temp)
{
sum += pow(temp % 10, digit); // 计算各位数的n次幂之和
temp /= 10;
}
return sum == n;
}
int main()
{
int n;
printf("请输入一个自然数:");
scanf("%d", &n);
if (isArmstrong(n))
{
printf("%d是阿姆斯壮数。\n", n);
}
else
{
printf("%d不是阿姆斯壮数。\n", n);
}
return 0;
}
首先定义了一个函数 isArmstrong
,用于判断一个自然数是否为阿姆斯壮数。在 main
函数中,先通过 scanf
获取输入的自然数,再调用 isArmstrong
函数进行判断,最后输出结果。此函数的实现过程较为复杂,需要用到循环和数学库函数。