质因数分解 90=2*3*3*5
//90=2*3*3*5 //非递归 #include<stdio.h> int main() { int n; while(scanf("%d",&n)!=EOF) { int b; while(n!=1) { int i; for(i=2;i<n;i++) { if(n%i==0) { printf("%d*",i); n = n/i; break; } } if(i==n) { printf("%d",n); break; } } printf("\n"); } }
递归的解法:
#include<stdio.h> void f(int x) { int i; if(x == 1) return; for(i=2;i<x;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); } }