使用函数判断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 数。

相关文章
|
7月前
|
存储 算法 JavaScript
判断奇偶数
判断奇偶数
|
7月前
给定 n 个整数,求里面出现次数最多的数,如果有多个重复出现的数,求值最大的那个 给定n个整数,求里面出现次数最多的数,如果有多个重复出现的数,求出值最大的一
给定 n 个整数,求里面出现次数最多的数,如果有多个重复出现的数,求值最大的那个 给定n个整数,求里面出现次数最多的数,如果有多个重复出现的数,求出值最大的一
|
27天前
判断最大值
【10月更文挑战第31天】判断最大值。
28 7
交换两个数的值的方法(三种)
交换两个数的值的方法(三种)
70 1
|
Go
怎样判断一个数是否为偶数
怎样判断一个数是否为偶数
105 0
变量等于0时的判断问题
变量等于0时的判断问题
83 0
计算一个数的每位之和(递归) 例如,用函数DigitSum(1729),则返回1+7+2+9,和为19 输入1729,输出19
计算一个数的每位之和(递归) 例如,用函数DigitSum(1729),则返回1+7+2+9,和为19 输入1729,输出19
114 0
计算一个数的每位之和(递归) 例如,用函数DigitSum(1729),则返回1+7+2+9,和为19 输入1729,输出19
统计二进制中1的个数,,,写一个函数,返回参数二进制中1的个数 写一个代码判断一个数字是不是2的n次方
统计二进制中1的个数,,,写一个函数,返回参数二进制中1的个数 写一个代码判断一个数字是不是2的n次方
130 0
当有取值范围时怎么在不越界的条件下判断数字的奇偶性
当有取值范围时怎么在不越界的条件下判断数字的奇偶性
113 0
(方法与方法重载运用)控制台输入一个数,判断,如果是素数,调用fenJie(这个数)方法,打印为1*这个数,如果不是素数,调用fenJie(这个数,a)方法,判断这个数是否是a的倍数。
(方法与方法重载运用)控制台输入一个数,判断,如果是素数,调用fenJie(这个数)方法,打印为1*这个数,如果不是素数,调用fenJie(这个数,a)方法,判断这个数是否是a的倍数。
127 0
(方法与方法重载运用)控制台输入一个数,判断,如果是素数,调用fenJie(这个数)方法,打印为1*这个数,如果不是素数,调用fenJie(这个数,a)方法,判断这个数是否是a的倍数。