/home/toolbox/public_html/solutions/107/10789/a.c
1 #include <stdio.h>
2 #include <string.h>
3 #include <sys/types.h>
4 #include <sys/stat.h>
5 #include <fcntl.h>
6 #include <stdint.h>
7 #include <math.h>
8 #include <stdlib.h>
9
10 #define TRUE (1 == 1)
11 #define FALSE (1 != 1)
12
13 #define DEBUG if (FALSE)
14
15 #define MAX_LINE 2010
16
17 /*
18 * Author: Isaac Traxler
19 * Date: 2018-02-07
20 * Purpose: fun
21 * Problem: 10789
22 */
23
24 /*
25 * This template reads lines of data at a time until end of file.
26 */
27
28 char line[MAX_LINE];
29 int numberOfTimes;
30 int ascii[MAX_LINE];
31 int lookupTable[MAX_LINE];
32 int primes [303] =
33 {
34 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43,
35 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107,
36 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181,
37 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263,
38 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349,
39 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433,
40 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521,
41 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613,
42 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701,
43 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809,
44 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887,
45 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997,
46 1009, 1013, 1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091,
47 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151, 1153, 1163, 1171, 1181, 1187, 1193,
48 1201, 1213, 1217, 1223, 1229, 1231, 1237, 1249, 1259, 1277, 1279, 1283, 1289, 1291,
49 1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373, 1381, 1399, 1409, 1423,
50 1427, 1429, 1433, 1439, 1447, 1451, 1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493,
51 1499, 1511, 1523, 1531, 1543, 1549, 1553, 1559, 1567, 1571, 1579, 1583, 1597, 1601,
52 1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657, 1663, 1667, 1669, 1693, 1697, 1699,
53 1709, 1721, 1723, 1733, 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811,
54 1823, 1831, 1847, 1861, 1867, 1871, 1873, 1877, 1879, 1889, 1901, 1907, 1913, 1931,
55 1933, 1949, 1951, 1973, 1979, 1987, 1993, 1997, 1999
56 };
57
58 void init()
59 {
60 /* FUNCTION init */
61 int i;
62
63 /* get the count */
64 scanf(" %d ", &numberOfTimes);
65
66 /* empty out table */
67 for (i=0; MAX_LINE>i; i++)
68 {
69 lookupTable[i] = FALSE;
70 }
71
72 /* mark all the primes */
73 for (i=0; 303>i; i++)
74 {
75 lookupTable[primes[i]] = TRUE;
76 }
77 } /* FUNCTION init */
78
79 void dump()
80 {
81 /* FUNCTION dump */
82 } /* FUNCTION dump */
83
84 int getInput()
85 {
86 /* FUNCTION getInput */
87 int dataReadFlag;
88
89 fgets(line, MAX_LINE, stdin);
90 if (feof(stdin))
91 dataReadFlag = FALSE;
92 else
93 {
94 /* something to read */
95 dataReadFlag = TRUE;
96 line[strlen(line)-1] = 0;
97 } /* something to read */
98 return (dataReadFlag);
99 } /* FUNCTION getInput */
100
101 void process()
102 {
103 /* FUNCTION process */
104 int i;
105 int stringLength;
106 int noneFound = TRUE;
107
108 /* clear out character count */
109 for (i=0; i<MAX_LINE; i++)
110 {
111 ascii[i] = 0;
112 }
113
114 /* count characters */
115 stringLength = strlen(line);
116 for (i=0; i<stringLength; i++)
117 {
118 /* for */
119 ascii[line[i]] = ascii[line[i]] + 1;
120 } /* for */
121
122 /* print out the results: */
123 for (i=0; 256>i; i++)
124 {
125 /* check each character */
126 if (lookupTable[ascii[i]])
127 {
128 /* found a prime */
129 noneFound = FALSE;
130 printf("%c", i);
131 DEBUG printf(" %d (%d)\n", i, ascii[i]);
132 } /* found a prime */
133 } /* check each character */
134 if (noneFound)
135 {
136 printf("empty");
137 }
138 printf("\n");
139 } /* FUNCTION process */
140
141 int main()
142 {
143 /* main */
144 int i;
145
146 init();
147 for (i=0; i<numberOfTimes; i++)
148 {
149 /* while */
150 getInput();
151 printf("Case %d: ", i+1);
152 process();
153 } /* while */
154
155 return EXIT_SUCCESS;
156 } /* main */
157