几种数

几种数

1、水仙花数
所谓的水仙花数是指一个3位数,其各位数字立方和等于该数本身。例如153是一水仙花数,因为153=111+555+333

#include <stdio.h>  
#include <stdlib.h>  
  
int main()  
{  
    int i;  
    for(i=100;i<=999;i++)  
    {  
        if(i==((i/100)*(i/100)*(i/100)+(i%10)*(i%10)*(i%10)+(i%100/10)*(i%100/10)*(i%100/10)))  
        printf("%d\n",i);  
    }  
  
    return 0;  
} 

这个看上去不难。
下面,我们来看等于阶乘和的三位数。
2、等于阶乘和的三位数

    #include <stdio.h>  
    #include <stdlib.h>  
      
    int main()  
    {  
        int i,a,b,c;  
        int j,s1,s2,s3;  
        for(i=100;i<=999;i++)  
        {  
            a=i/100;  
            b=(i%100)/10;  
            c=i%10;  
            for(j=1,s1=1;j<=a;j++)  
            {  
                s1=s1*j;  
            }  
            for(j=1,s2=1;j<=b;j++)  
            {  
                s2=s2*j;  
            }  
            for(j=1,s3=1;j<=c;j++)  
            {  
                s3=s3*j;  
            }  
            if(s1+s2+s3==i)  
            {  
            printf("%d\n",i);  
            }  
        }  
      
        return 0;  
    }  

这个代码,想想应该能够自己敲出来。
前面两个都是我自己敲的。
不过,后面,嘿嘿~~
3、回文数
所谓回文数,就是一个数正反都可以读通。
下面请欣赏:

    #include <stdio.h>  
    #include <stdlib.h>  
      
    int main()  
    {  
        int n,p=0,j,k=0;  
      
        scanf("%d",&n);  
        p=n;  
        while(p>0)  
        {  
            j=p%10;  
            p=p/10;  
            k=j+k*10;  
        }  
        if(k==n)  
        {  
            printf("Yes\n");  
        }  
        else  
        {  
            printf("No\n");  
        }  
      
      
        return 0;  
    }  

这是书上的答案,你细细一想。只有把这个数反过来与原来的数相等,它就是回文数。
4、自守数
自守数:一个数平方的尾数等于该数的自然数。
想想其实不怎么难。不过自我感觉有一点抽象。
看代码吧!

    #include <stdio.h>  
    #include <stdlib.h>  
      
    int main()  
    {  
        int n,b=1;  
        scanf("%d",&n);  
          
       while(b<=n)  
             {  
                b=b*10;      
             }  
       if((n*n-n)%b==0)  
        printf("Yes\n");  
       else  
        printf("No\n");  
        return 0;  
    }  

我感觉循环哪里有点抽象。不过想想是哪个样子。
5、完数
一个数如果恰好等于它的因子之和,它就是完数。
或许因子是什么都已经忘了。
所谓因子就是因数,比如6=2x3. 这里2和3就是因子。

    #include <stdio.h>  
    #include <stdlib.h>  
      
    int main()  
    {  
        int n,i,sum=0;  
        scanf("%d",&n);  
        for (i=1;i<n;i++)  
        {  
            if(n%i==0)  
            {  
                sum=sum+i;  
            }  
        }  
        if(n==sum)  
        {  
            printf("Yes,its factors are");  
            for(i=1;i<n;i++)  
            {  
                if(n%i==0)  
                {  
                    printf(" %d",i);  
      
                }  
            }  
            printf("\n");  
        }  
        else  
        {  
            printf("No\n");  
        }  
      
        return 0;  
    }  

看着代码,很好理解。这是很好的代码,但是自己就是做不来。
6、素数
素数不需要介绍了吧!就是质数。
那素数该怎么求呢?

    #include <stdio.h>  
    #include <stdlib.h>  
      
    int main()  
    {  
        int m,n,i,s;  
        scanf("%d %d",&m,&n);  
        for(i=m;i<=n;i++)  
        {  
            int flag=0;  
            for(s=2;s<i;s++)  
            {  
                if(i%s==0)  
                {  
                    flag=1;  
                    break;  
      
                }  
            }  
            if(flag==0)  
            {  
                printf(" %d",i);  
            }  
        }  
        printf("\n");  
        return 0;  
    }  

只要可以找到除1和它本身之外的数被它整除。它就不是素数。
你知道怎么求,为啥代码写不出来呢?
7、最后:最大公约数和最小公倍数
先来代码

    #include <stdio.h>  
    #include <stdlib.h>  
      
    int main()  
    {  
        int m,n,a,b;  
        scanf("%d %d",&a,&b);  
        m=a;  
        n=b;  
        while(n!=0)  
        {  
            int t=m%n;  
            m=n;  
            n=t;  
        }  
        printf("the greatest common divisor is %d\n",m);  
        printf("the least common multiple is %d\n",a/m*b);  
      
        return 0;  
    }  

注意:最小公倍数=两数积除以它们的最大公约数。
为啥要printf(“the least common multiple is %d\n”,a/mb); 为啥不ab/m,因为有可能a*b超过了int类型的最大值,所以先除。

最后:希望可以坚持继续码代码。也希望码代码快乐,多想,多码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值