C語言練習-阿姆斯特朗數/回文數/親密數/完數

1.阿姆斯特朗數

void Amusterang_number()
{
    int i,j,m,k,sum;

    int num[10];
    for(i=1;i<1000;i++)
    {
        sum = 0;
        m=i;
        j=0;
        while(m>0)
        {
            num[j] = m%10;
            m=m/10;
            j++;
        }
        for(k=0;k<j;k++)
            sum += num[k]*num[k]*num[k];
        if(sum == i)
            printf("%3d >",i);

    }
}

2.回文數

/*回文數*/
void Back_Forward()
{
    int i,m,n,count=0;
    for(i=1;i<10000;i++)
    {
        m=i;
        n=0;
        while(m>0)
        {
            n=n*10+m%10;
            m=m/10;
        }
        if(n == i)
        {
            count++;
            printf("%5d>",i);
        }
        if(count/11==1)
        {
            count = 0;
            printf("\n");
        }
    }
}

3.親密數

void Is_a_close_number()
{
    int i,j,sum1,sum2;
    for(j=1;j<=3000;j++)
    {
        sum1 =0;
        sum2 =0;
        for(i=1;i<j;i++)
        {
            if(j%i==0)
                sum1+=i;
        }
        for(i=1;i<sum1;i++)
        {
            if(sum1%i==0)
                sum2 +=i;
        }
        if(j == sum2)
            printf("< %d , %d > are close number.\n ",j,sum1);
    }

}

4.完數

void Is_a_Perfect_number()
{
    int i,j,sum;
    for(j=2;j<=1000;j++)
    {
        sum =0;
        for(i=1;i<j;i++)
        {
            if(j%i==0)
                sum+=i;
        }
        if(j == sum)
            printf("%d >> ",j);
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_38486169/article/details/86436921