Back to list of problems
Count on Cantor
264.c
/* 264 - Count on Cantor */ #include <stdio.h> #include <math.h> void cantor(int n) { int x,y; x = (sqrt(8*(n-1)+1)-1)/2; #if DEBUG printf("x = %d (%d/%d .. %d/%d)\n", x, 1, x+1, x+1, 1); #endif y = (1+x)*x/2; y = n-y; if (x % 2) { printf("TERM %d IS %d/%d\n", n, y, x+2-y); } else { printf("TERM %d IS %d/%d\n", n, x+2-y, y); } #if DEBUG printf("y = %d\n", y); #endif } int main(void) { int n; while (scanf("%d", &n)==1) { cantor(n); } return 0; }