#include <stdio.h> #include <assert.h> long calpower(int m, int n) // { assert(n >= 0); if (0 == n) return 1; if (1 == n) return m; if ((n & 0x01) == 0) return calpower(m * m, n /2); else return calpower(m * m, n-1) * m; } int main(void) { printf("%d/n",calpower(3,10)); return 0; } #include <stdio.h> void readfactor(long n) { int i; int iCount; long m = n; if (n >= 1 && n <= 3) { printf("%d(1)/n",n); return; } for (i = 2; i * i <= m; ++i) { iCount = 0; while (m % i == 0) { m /= i; iCount++; } if (iCount) printf("%d(%d) ",i, iCount); } if (m != 1) printf("%d(1)",m); printf("/n"); } int main(void) { int iCnt = 1; for (; iCnt <= 200; ++iCnt) readfactor(iCnt); return 0; } unsigned long unrecursive_calPower(int m, int n) { unsigned long temp; unsigned long x; x =m; temp = 1; while (n) { if (n & 0x01) temp *= x; n = n>>1; x *= x; } return temp; } long fibonacci(int n) { assert(n >= 1); int f1 = 1,f2 = 1; int temp; if (n <= 2) return 1; for (i = 3; i <= n; ++i) { temp = f1 + f2; f1 = f2; f2 = temp; } return temp; }