#include #define N 2000 /*展開の長さの上限*/ main(void) { unsigned long state, bunbo; unsigned long state_seq[N]; int i=0; int found = 0; /*見つかってないとき0, 見つかったら1*/ int exhaust = 0; /*配列を使い果たしたら1*/ printf("a÷nの周期を計算します。a,nを入力ください。\n"); printf(" a="); scanf("%d",&state); printf(" n="); scanf("%d",&bunbo); printf("%d.",state / bunbo); state = state % bunbo; while (found==0 && exhaust==0) { /* 見つからず、使い果たしてない間 */ int j; printf("%1d", (state * 10)/bunbo); /* 今までに、stateが現れたことがあるか探す */ for (j=0; (j=N) { /* 用意した桁数が足らない */ printf("%d桁見ても循環しません\n", N); exhaust = 1; /*配列を使い果たしたというフラグを立てる*/ } state_seq[i] = state; state = (10 * state) % bunbo; i++; } }