/* * A189418.c * Calculates the entries of Sloane's A189418 * * Created by Nathaniel Johnston (nathaniel@nathanieljohnston.com) * April 23, 2011 */ #include #include unsigned char pt[256][256]; FILE *file; unsigned char isRhombus (unsigned short a1, unsigned short a2, unsigned short b1, unsigned short b2, unsigned short c1, unsigned short c2, unsigned short d1, unsigned short d2) { unsigned int sd1, sd2, sd3, sd4; sd1 =(a1-b1)*(a1-b1) + (a2-b2)*(a2-b2); sd2 =(b1-d1)*(b1-d1) + (b2-d2)*(b2-d2); sd3 =(c1-d1)*(c1-d1) + (c2-d2)*(c2-d2); sd4 =(a1-c1)*(a1-c1) + (a2-c2)*(a2-c2); if(sd1==sd2 && sd2==sd3 && sd3==sd4)return 1; return 0; } int main () { unsigned short a, b, c, d, a1, a2, b1, b2, c1, c2, d1, d2, maxsz, sz, sz2; unsigned long long numPts; printf("This tool will calculate the entries of Sloane's A189418.\nPlease enter the number of terms to compute (an integer from 1 to 255): "); scanf("%d",&maxsz); numPts = 0; file = fopen("b189418.txt","w"); fprintf(file,"1 0\n"); fclose(file); printf("1 0\n"); for(sz=2;sz<=maxsz;sz++){ numPts = 0; sz2 = sz*sz; for(a=0;a