质因数分解 90=2*3*3*5

//90=2*3*3*5 
//非递归
#include
int main() {
    int n;
    while(scanf("%d",&n)!=EOF) {
        int b;
        while(n!=1) {
            int i;
            for(i=2;i) {
                if(n%i==0) {
                    printf("%d*",i);
                    n = n/i;
                    break;
                }
            }
            if(i==n) {
                printf("%d",n);
                break;
            } 
        }
        printf("\n");
    }
}

 递归的解法:

#include

void f(int x) {
    int i;
    if(x == 1) return;
    for(i=2;i) {
        if(x%i==0) {
            printf("%d*",i);
            f(x/i);
            break;
        }
    }
    if(i==x) printf("%d",i);
}

int main() {
    int n;
    while(scanf("%d",&n)!=EOF) {
        f(n);
    }
}

 

转载于:https://www.cnblogs.com/wangzijing/archive/2013/02/28/2937697.html

你可能感兴趣的:(质因数分解 90=2*3*3*5)