Wolstenholme numbers: Difference between revisions

Content added Content deleted
(→‎{{header|C}}: Slightly simpler.)
Line 54: Line 54:


int main() {
int main() {
int i, pc = 0;
int i, pc = 0, si = 0;
unsigned long k, l[5] = {500, 1000, 2500, 5000, 10000};
unsigned long k, l[5] = {500, 1000, 2500, 5000, 10000};
char *s, a[44];
char *s, a[44];
Line 73: Line 73:
s = mpz_get_str(NULL, 10, n);
s = mpz_get_str(NULL, 10, n);
printf("%6ld%s: %s\n", k, ord(k), s);
printf("%6ld%s: %s\n", k, ord(k), s);
} else {
} else if (k == l[si]) {
for (i = 0; i < 5; ++i) {
s = mpz_get_str(NULL, 10, n);
if (l[i] == k) {
abbreviate(a, s);
s = mpz_get_str(NULL, 10, n);
printf("%'6ld%s: %s (digits: %ld)\n", k, ord(k), a, strlen(s));
abbreviate(a, s);
++si;
printf("%'6ld%s: %s (digits: %ld)\n", k, ord(k), a, strlen(s));
break;
}
}
}
}
}
}