感觉嵌套就没玩明白…(水仙花数)

img


这样编输了3之后就什么都没了,怎么回事啊,我搞不明白😭😢🫥😤😫😥

你这是素数吧
素数看着:


水仙花数看着:

#include<stdio.h>
int fun(int num) {
    int a,b,c;
    a=num/100;    //取百位
    b=num/10%10;    //取十位
    c=num%10;      //取个位
    if(a*a*a+b*b*b+c*c*c==num) {    //水仙花数判断
        return 1;
    } else {
        return 0;
    }
}
int main() {
    int num;
    scanf("%d",&num);
    if(fun(num))
        printf("是");
    else
        printf("不是");
    return 0;
}
 

给你改一下吧

int main()
{
    int n=0;
    int i=2;
    int x;
    for(x=2;x<=100;x++)
    {
        n=0;
        i=2;
        while(i<x)
        {
            if(x%i==0)
            {
                n=1;
                break;
            }
            i++;
        }
        if(n==0)
            printf("%d ",x);
    }
    
    return 0;
}

循环调用判断是否为质数的函数,返回值判断质数就好了

img

#include<stdio.h>
int prime(int x)
{
    for(int j=2;j<=x/j;j++)
    {
        if(x%j==0)
        {
            return 0;
        }
    }
    return 1;
}
int main()
{
    for(int i=2;i<=100;i++)
    {
        if(prime(i))
        {
            printf("%d ",i);
        }
    }
    return 0;
}

程序拿走,采纳留下

供参考:

#include <stdio.h>
int main()
{
    int n ,i ,x;
    for (x = 100; x < 1000; x++)
    {
        i = x; n = 0;
        while(i) //求得数 x 每位数字的立方和
        {
             n += (i%10)*(i%10)*(i%10);
             i /= 10;
        }
        if (n == x)//水仙花数判断,如: 153 = 1*1*1 + 5*5*5 + 3*3*3
             printf("%d ", x);
    }
    return 0;
}