使用函数判断Armstrong 数

简介: 【10月更文挑战第24天】使用函数判断Armstrong 数。

使用函数判断Armstrong 数

include

include

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);

// 检测 Armstrong 数
flag = checkArmstrongNumber(n);
if (flag == 1)
    printf("%d 是 Armstrong 数。", n);
else
    printf("%d 不是 Armstrong 数。",n);
return 0;

}

int checkPrimeNumber(int n)
{
int i, flag = 1;

for(i=2; i<=n/2; ++i)
{

// 非素数条件
    if(n%i == 0)
    {
        flag = 0;
        break;
    }
}
return flag;

}

int checkArmstrongNumber(int number)
{
int originalNumber, remainder, result = 0, n = 0, flag;

originalNumber = number;

while (originalNumber != 0)
{
    originalNumber /= 10;
    ++n;
}

originalNumber = number;

while (originalNumber != 0)
{
    remainder = originalNumber%10;
    result += pow(remainder, n);
    originalNumber /= 10;
}

// 判断条件
if(result == number)
    flag = 1;
else
    flag = 0;

return flag;

}

输出结果为:

输入正整数: 371
371 不是素数
371 是 Armstrong 数。

相关文章
|
6月前
给定 n 个整数,求里面出现次数最多的数,如果有多个重复出现的数,求值最大的那个 给定n个整数,求里面出现次数最多的数,如果有多个重复出现的数,求出值最大的一
给定 n 个整数,求里面出现次数最多的数,如果有多个重复出现的数,求值最大的那个 给定n个整数,求里面出现次数最多的数,如果有多个重复出现的数,求出值最大的一
|
11天前
判断最大值
【10月更文挑战第31天】判断最大值。
24 7
交换两个数的值的方法(三种)
交换两个数的值的方法(三种)
67 1
|
6月前
位与运算&小于相等判断==的优先级
位与运算&小于相等判断==的优先级
1245:不重复地输出数 2020-12-28
1245:不重复地输出数 2020-12-28
变量等于0时的判断问题
变量等于0时的判断问题
80 0
计算一个数的每位之和(递归) 例如,用函数DigitSum(1729),则返回1+7+2+9,和为19 输入1729,输出19
计算一个数的每位之和(递归) 例如,用函数DigitSum(1729),则返回1+7+2+9,和为19 输入1729,输出19
112 0
计算一个数的每位之和(递归) 例如,用函数DigitSum(1729),则返回1+7+2+9,和为19 输入1729,输出19
统计二进制中1的个数,,,写一个函数,返回参数二进制中1的个数 写一个代码判断一个数字是不是2的n次方
统计二进制中1的个数,,,写一个函数,返回参数二进制中1的个数 写一个代码判断一个数字是不是2的n次方
128 0
当有取值范围时怎么在不越界的条件下判断数字的奇偶性
当有取值范围时怎么在不越界的条件下判断数字的奇偶性
113 0