📜  C程序,使用用户定义的功能检查素数或阿姆斯壮数(1)

📅  最后修改于: 2023-12-03 15:30:15.900000             🧑  作者: Mango

C程序:检查素数或阿姆斯壮数

本程序为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 函数进行判断,最后输出结果。此函数的实现过程较为复杂,需要用到循环和数学库函数。