#include "bignum.h" Bignum fact(int N){ static Bignum X;X=intToBignum(1); for(int i=1;i<=N;i++) X=mulAbs(X,i); return X; } Bignum maxSqrt(Bignum A){ int PN=int(sqrt((double)A.Num[A.Len]))+1; int BaseM1=Base-1, SQB=(int)(sqrt((double)Base)+0.5); static Bignum X; X.Len=(A.Len+1)/2; if(A.Len % 2==0){ if(PN A "); printf("%s", gtBig(A,A)?"true":"false"); printf("\n A > B "); printf("%s", gtBig(A,B)?"true":"false"); printf("\n B > A "); printf("%s", gtBig(B,A)?"true":"false"); printf("\n A < A "); printf("%s", ltBig(A,A)?"true":"false"); printf("\n A < B "); printf("%s", ltBig(A,B)?"true":"false"); printf("\n B < A "); printf("%s", ltBig(B,A)?"true":"false"); printf("\n A >= A "); printf("%s", geBig(A,A)?"true":"false"); printf("\n A >= B "); printf("%s", geBig(A,B)?"true":"false"); printf("\n B >= A "); printf("%s", geBig(B,A)?"true":"false"); printf("\n A <= A "); printf("%s", leBig(A,A)?"true":"false"); printf("\n A <= B "); printf("%s", leBig(A,B)?"true":"false"); printf("\n B <= A "); printf("%s", leBig(B,A)?"true":"false"); printf("\n - intToBigNum(65532) = "); printBignum(minus(intToBignum(65532))); printf("\n A+10="); printBignum(addAbs(A,10)); printf("\n A+B="); printBignum(addAbs(A,B)); printf("\n A*B="); printBignum(mulAbs(A,B)); printf("\n %d", compAbs(A,B)); printf("\n A-B="); printBignum(subAbs(A,B)); printf("\n B*99="); printBignum(mulAbs(B,99)); printf("\n A*B="); printBignum(mulAbs(A,B)); printf("\nB+A*B="); printBignum(mulAbs(B,A,B)); printf("\n"); printBignum(divQRAbs(A,8,&R)); printf("余り=%d",R); QRData QR=divQRAbs(A,B); printf("\n divQRAbs A/B 商 "); printBignum(QR.Q); printf("\n divQRAbs A/B 余り "); printBignum(QR.R); QR.Q=divAbs(A,B); printf("\n divAbs A/B 商 "); printBignum(QR.Q); QR.R=modAbs(A,B); printf("\n divAbs A/B 余り "); printBignum(QR.R); printf("\n π = "); printSeperate(compPi(503));//1000桁求めるには,1006桁で計算し後を無視 printf("\n e = "); printSeperate(compE(503));//1000桁求めるには,1006桁で計算し後を無視 printf("\n\n 階乗の計算\n"); for(int i=1;i<=50;i++){ printf("\n %2d! = ",i); printBignum(fact(i)); } getchar(); return 0; }