C 语言教程 在线

1700c-exercise-example14

参考方法:

#include <stdio.h>

int main()
{
    int x, n;
    printf("请输入一个正整数\n");
    scanf("%d",&x);
    printf("%d=",x);
    for(n=2;n<x;n++)
    {
        if(x%n==0){ printf("%d*",n); x=x/n; n=1; }
    }
    printf("%d\n",x);
}

1699c-exercise-example14

参考:

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include<math.h>

void Positive_integer_disintegrant(int n)
{
    int i = 2, m;
    m = n;
    printf("%d = ", n);
    while (i <=(n/2)) {
        if (m%i == 0) {
            printf("%d", i);
            m = m / i;
            if (m != 1) {
                printf(" * ");
            }
        }
        if (m%i != 0) {
            i++;
        }
    }
}

int main(void)
{
    int n;
    printf("正整数分解质因数\n");
    scanf("%d", &n);
    Positive_integer_disintegrant(n);
    //system("pause");
    return 0;
}

1698c-exercise-example13

参考方法:

#include <stdio.h>
#include <math.h>

int main(){
    int i,temp;
    double sum;
    for(i=100;i<1000;i++){
        sum=0;
        temp=i;
        while(temp){
            sum+=pow(temp%10,3);
            temp/=10;
        }
        if((int)sum==i)
            printf("%d ",i);
    }
    return 0;
}

1697c-exercise-example13

参考方法:

#include<stdio.h>
int IsSXH(int n)
{
    int a,b,c,num;
    num = n;
    c = n%10;
    n = n/10;
    b = n%10;
    a = n/10;
    if(num == a*a*a + b*b*b + c*c*c)
        return 1;
    else
        return 0;
}
int main(void)
{
    int i;
    for(i = 100; i < 1000; i++)
    {
        if(IsSXH(i))
            printf("%d\n",i);
    }
    return 0;
}

1696c-exercise-example13

参考方法:

#include<stdio.h>

int main(void)
{
    int i, s, n, q;
    for(i = 101; i < 1000; i++)
    {
        s = 0;
        q = i;
        while(q != 0)
        {
            n = q % 10;
            s += n*n*n;
            q /= 10;
        }
        if( s == i)
            printf("%d是水仙花数\n", i);
    }
    return 0;
}