-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathfizzbuzz076.c
30 lines (26 loc) · 979 Bytes
/
fizzbuzz076.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#include <gmp.h>
static const char *value =
"1758144650379409115973060067754372904053986902007805006121152086"
"7346572077350868429529811236342631766865555486625388403294134313"
"9919473464862692563656335862646335991330635579740476402754664709"
"5009452126721282861298586050932151536724800069846116487584481144"
"9718051799587767879877254349622241483186025304973052404751236318"
"3354034918187088400879551859852645138073866199388826076199077845"
"1658923923900956024185490128998052143014495305050258233159568236"
"72202738763385595638676791798247890609";
static void print(mpz_t i) {
if (mpz_cmp_si(i, 0) > 0) {
static const char chars[15] = "Fiuz123456789B\n";
mpz_t q; mpz_init(q);
mpz_t r; mpz_init(r);
mpz_tdiv_qr_ui(q, r, i, 15);
print(q);
putchar(chars[mpz_get_si(r)]);
}
}
int main(void) {
mpz_t num;
mpz_init_set_str(num, value, 10);
print(num);
}