接上文: 高精度计算:梅森数(1) 如果使用传统语言,那么最好的方法就是用基本数据类型模拟大数数据类型,模拟手工计算达到目的,比如使用C语言: #include <stdio.h> #include <memory.h> #include <math.h> #include <time.h> int main(int argc, const char *argv[]) { char digits[500 + 1]; int p, i, j, c = 0, r, l = 0; time_t time1, time2; memset(digits, 0, 500 + 1); digits[0] = 1; printf("Enter a number:"); scanf("%d", &p); time(&time1); printf("%d/n", (int)(p * log10(2)) + 1); for (i = 0; i < p; i++) { c = 0; if (l > 499) l = 499; for (j = 0; j <= l; j++) { r = digits[j] << 1; digits[j] = r % 10 + c; c = (r > 9) ? 1 : 0; }