8、【编写程序】编写一个求水仙花的函数和判断整数n是否为素数的函数,求出1000以内的全部水仙花数并判断求出的水仙花数是否为素数。

8、【编写程序】编写一个求水仙花的函数和判断整数n是否为素数的函数,求出1000以内的全部水仙花数并判断求出的水仙花数是否为素数。所谓水仙花数是指三位整数的各位上的数字的立方和等于该整数本身。例如153就是一个水仙花数:153=13+53+33

供参考:

#include <stdio.h>
int isPrime(int n)
{
    int i;
    if (n <= 3)return n > 1;
    for (i = 2; i * i <= n; i++)
        if (n % i == 0) return 0;
    return 1;
}
int isNarcissistic(int n)
{
    int t = n, s = 0;
    while (t)
    {
        s += (t % 10) * (t % 10) * (t % 10);
        t /= 10;
    }
    return s == n;
}
int main()
{
    int i, k = 0;
    for (i = 100; i < 1000; i++)
    {
        if (isNarcissistic(i))
        {
            if (isPrime(i))
                printf("%3d:是素数\n",i);
            else
                printf("%3d:不是素数\n",i);
        }
    }
    return 0;
}