c语言扑克牌序列牌

19被浏览2,357分享邀请回答//这是一个查找全部同花牌的表().
short flushes[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1599, 0, 0, 0, 0, 0, 0, 0, 1598, 0, 0, 0, 1597, 0, 1596,
8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1595, 0, 0, 0,
0, 0, 0, 0, 1594, 0, 0, 0, 1593, 0, 1592, 1591, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1589, 0, 1588, 1587, 0, 0, 0, 0, 1586, 0,
1585, 1584, 0, 0, 1583, 1582, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1581, 0, 0, 0, 0, 0, 0, 0, 1580, 0, 0, 0,
1579, 0, 1578, 1577, 0, 0, 0, 0, 0, 0, 0, 0, 1576, 0, 0, 0, 1575,
0, 1574, 1573, 0, 0, 0, 0, 1572, 0, 1571, 1570, 0, 0, 1569, 1568,
0, 1567, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1566, 0, 0,
1564, 1563, 0, 0, 0, 0, 1562, 0, 1561, 1560, 0, 0, 1559, 1558, 0,
1557, 0, 0, 0, 0, 0, 0, 1556, 0, 1555, 1554, 0, 0, 1553, 1552, 0,
1551, 0, 0, 0, 0, 1550, 1549, 0, 1548, 0, 0, 0, 6, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1547, 0, 0, 0,
0, 0, 0, 0, 1546, 0, 0, 0, 1545, 0, 1544, 1543, 0, 0, 0, 0, 0, 0,
0, 0, 1542, 0, 0, 0, 1541, 0, 1540, 1539, 0, 0, 0,
1537, 1536, 0, 0, 1535, 1534, 0, 1533, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1532, 0, 0, 0, 1531, 0, 1530, 1529, 0, 0, 0, 0, 1528, 0, 1527,
1526, 0, 0, 1525, 1524, 0, 1523, 0, 0, 0, 0, 0, 0, 1522, 0, 1521,
1520, 0, 0, 1519, 1518, 0, 1517, 0, 0, 0, 0, 1516, 1515, 0, 1514,
0, 0, 0, 1513, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1512, 0,
0, 0, 1511, 0, 1510, 1509, 0, 0, 0, 0, 1508, 0, 1507, 1506, 0, 0,
1505, 1504, 0, 1503, 0, 0, 0, 0, 0, 0, 1502, 0, 1501, 1500, 0, 0,
1499, 1498, 0, 1497, 0, 0, 0, 0, 1496, 1495, 0, 1494,
0, 0, 0, 0, 0, 0, 0, 0, 1492, 0, 1491, 1490, 0, 0,
1489, 1488, 0, 1487, 0, 0, 0, 0, 1486, 1485, 0, 1484,
1483, 0, 0, 0, 0, 0, 0, 0, 0, 1482, 1481, 0, 1480, 0, 0, 0, 1479,
0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1478, 0, 0, 0, 0,
0, 0, 0, 1477, 0, 0, 0, 1476, 0, 1475, 1474, 0, 0, 0, 0, 0, 0, 0,
0, 1473, 0, 0, 0, 1472, 0, 1471, 1470, 0, 0, 0, 0, 1469, 0, 1468,
1467, 0, 0, 1466, 1465, 0, 1464, 0, 0, 0, 0, 0, 0, 0,
0, 1462, 0, 1461, 1460, 0, 0, 0, 0, 1459, 0, 1458,
1457, 0, 0, 1456, 1455, 0, 1454, 0, 0, 0, 0, 0, 0, 1453, 0, 1452,
1451, 0, 0, 1450, 1449, 0, 1448, 0, 0, 0, 0, 1447, 1446, 0, 1445,
0, 0, 0, 1444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1443, 0,
0, 0, 1442, 0, 1441, 1440, 0, 0, 0, 0, 1439, 0, 1438, 1437, 0, 0,
1436, 1435, 0, 1434, 0, 0, 0, 0, 0, 0, 1433, 0, 1432, 1431, 0, 0,
1428, 0, 0, 0, 0, 1427, 1426, 0, 1425, 0, 0, 0,
1424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1423, 0, 1422,
1418, 0, 0, 0, 0, 1417, 1416, 0, 1415, 0, 0, 0,
1414, 0, 0, 0, 0, 0, 0, 0, 0, 1413, 1412, 0, 1411, 0, 0, 0, 1410,
0, 0, 0, 0, 0, 0, 0, 1409, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1408, 0, 0, 0, 1407, 0, 1406, 1405, 0,
0, 0, 0, 1404, 0, 1403, 1402, 0, 0, 1401, 1400, 0, 1399, 0, 0, 0,
0, 0, 0, 1398, 0, 1397, 1396, 0, 0, 1395, 1394, 0, 1393, 0, 0, 0,
0, 1392, 1391, 0, 1390, 0, 0, 0, 1389, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1388, 0, 1387, 1386, 0, 0, 1385, 1384, 0, 1383, 0,
1382, 1381, 0, 1380, 0, 0, 0, 1379, 0, 0, 0, 0, 0, 0, 0, 0, 1378,
1377, 0, 1376, 0, 0, 0, 1375, 0, 0, 0, 0, 0, 0, 0, 1374, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1373, 0, 1372, 1371,
0, 0, 1370, 1369, 0, 1368, 0, 0, 0, 0, 1367, 1366, 0, 1365, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1363, 1362, 0, 1361, 0, 0, 0,
1360, 0, 0, 0, 0, 0, 0, 0, 1359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1358, 1357, 0, 1356, 0, 0, 0, 1355, 0, 0, 0, 0, 0,
0, 0, 1354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1353, 0, 0, 0, 0, 0, 0, 0, 1352, 0, 0, 0, 1351, 0, 1350, 1349, 0,
0, 0, 0, 0, 0, 0, 0, 1348, 0, 0, 0, 1347, 0, 1346, 1345, 0, 0, 0,
0, 1344, 0, 1343, 1342, 0, 0, 1341, 1340, 0, 1339, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1338, 0, 0, 0, 1337, 0, 1336, 1335, 0,
1334, 0, 1333, 1332, 0, 0, 1331, 1330, 0, 1329, 0, 0, 0, 0, 0, 0,
1328, 0, 1327, 1326, 0, 0, 1325, 1324, 0, 1323, 0, 0, 0, 0, 1322,
1321, 0, 1320, 0, 0, 0, 1319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1318, 0, 0, 0, 1317, 0, 1316, 1315, 0, 0, 0,
1313, 1312, 0, 0, 1311, 1310, 0, 1309, 0, 0, 0, 0, 0, 0, 1308, 0,
1307, 1306, 0, 0, 1305, 1304, 0, 1303, 0, 0, 0, 0, 1302, 1301, 0,
1300, 0, 0, 0, 1299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1298, 0, 1297,
1296, 0, 0, 1295, 1294, 0, 1293, 0, 0, 0, 0, 1292, 1291, 0, 1290,
0, 0, 0, 1289, 0, 0, 0, 0, 0, 0, 0, 0, 1288, 1287, 0, 1286, 0, 0,
0, 1285, 0, 0, 0, 0, 0, 0, 0, 1284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1283, 0, 0, 0, 1282, 0, 1281,
1280, 0, 0, 0, 0, 1279, 0, 1278, 1277, 0, 0, 1276, 1275, 0, 1274,
0, 0, 0, 0, 0, 0, 1273, 0, 1272, 1271, 0, 0, 1270, 1269, 0, 1268,
0, 0, 0, 0, 1267, 1266, 0, 1265, 0, 0, 0, 1264, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1263, 0, 1262, 1261, 0, 0, 1260, 1259, 0, 1258, 0, 0,
0, 0, 1257, 1256, 0, 1255, 0, 0, 0, 1254, 0, 0, 0, 0, 0, 0, 0, 0,
1253, 1252, 0, 1251, 0, 0, 0, 1250, 0, 0, 0, 0, 0, 0, 0, 1249, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1248, 0, 1247,
1246, 0, 0, 1245, 1244, 0, 1243, 0, 0, 0, 0, 1242, 1241, 0, 1240,
0, 0, 0, 1239, 0, 0, 0, 0, 0, 0, 0, 0, 1238, 1237, 0, 1236, 0, 0,
0, 1235, 0, 0, 0, 0, 0, 0, 0, 1234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1233, 1232, 0, 1231, 0, 0, 0, 1230, 0, 0, 0, 0,
0, 0, 0, 1229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1228,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1227, 0, 0, 0,
1226, 0, 1225, 1224, 0, 0, 0, 0, 1223, 0, 1222, 1221, 0, 0, 1220,
1219, 0, 1218, 0, 0, 0, 0, 0, 0, 1217, 0, 1216, 1215, 0, 0, 1214,
1213, 0, 1212, 0, 0, 0, 0, 1211, 1210, 0, 1209, 0, 0, 0, 1208, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1207, 0, 1206, 1205, 0, 0, 1204, 1203,
0, 1202, 0, 0, 0, 0, 1201, 1200, 0, 1199, 0, 0, 0, 1198, 0, 0, 0,
0, 0, 0, 0, 0, 1197, 1196, 0, 1195, 0, 0, 0, 1194, 0, 0, 0, 0, 0,
0, 0, 1193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1192, 0, 1191, 1190, 0, 0, 1189, 1188, 0, 1187, 0, 0, 0, 0, 1186,
1185, 0, 1184, 0, 0, 0, 1183, 0, 0, 0, 0, 0, 0, 0, 0, 1182, 1181,
0, 1180, 0, 0, 0, 1179, 0, 0, 0, 0, 0, 0, 0, 1178, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1177, 1176, 0, 1175,
1174, 0, 0, 0, 0, 0, 0, 0, 1173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1171, 0,
1170, 1169, 0, 0, 1168, 1167, 0, 1166, 0, 0, 0, 0, 1165, 1164, 0,
1163, 0, 0, 0, 1162, 0, 0, 0, 0, 0, 0, 0, 0, 1161, 1160, 0, 1159,
0, 0, 0, 1158, 0, 0, 0, 0, 0, 0, 0, 1157, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1156, 1155, 0, 1154, 0, 0, 0, 1153, 0, 0,
0, 0, 0, 0, 0, 1152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1150, 1149, 0, 1148, 0, 0, 0,
1147, 0, 0, 0, 0, 0, 0, 0, 1146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1144, 0, 0, 0, 0, 0, 0, 0, 1143, 0, 0, 0, 1142,
0, 1141, 1140, 0, 0, 0, 0, 0, 0, 0, 0, 1139, 0, 0,
1137, 1136, 0, 0, 0, 0, 1135, 0, 1134, 1133, 0, 0, 1132, 1131, 0,
1130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1129, 0, 0, 0, 1128, 0, 1127,
1126, 0, 0, 0, 0, 1125, 0, 1124, 1123, 0, 0, 1122, 1121, 0, 1120,
0, 0, 0, 0, 0, 0, 1119, 0, 1118, 1117, 0, 0, 1116, 1115, 0, 1114,
0, 0, 0, 0, 1113, 1112, 0, 1111, 0, 0, 0, 1110, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1109, 0, 0, 0, 1108, 0, 1107, 1106, 0, 0,
0, 0, 1105, 0, 1104, 1103, 0, 0, 1102, 1101, 0, 1100, 0, 0, 0, 0,
0, 0, 1099, 0, 1098, 1097, 0, 0, 1096, 1095, 0, 1094, 0, 0, 0, 0,
1093, 1092, 0, 1091, 0, 0, 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1089, 0, 1088, 1087, 0, 0, 1086, 1085, 0, 1084, 0, 0, 0, 0, 1083,
1082, 0, 1081, 0, 0, 0, 1080, 0, 0, 0, 0, 0, 0, 0, 0, 1079, 1078,
0, 1077, 0, 0, 0, 1076, 0, 0, 0, 0, 0, 0, 0, 1075, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1074, 0, 0, 0,
1073, 0, 1072, 1071, 0, 0, 0, 0, 1070, 0, 1069, 1068, 0, 0, 1067,
1066, 0, 1065, 0, 0, 0, 0, 0, 0, 1064, 0, 1063, 1062, 0, 0, 1061,
1060, 0, 1059, 0, 0, 0, 0, 1058, 1057, 0, 1056, 0, 0, 0, 1055, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1054, 0, 1053, 1052, 0, 0, 1051, 1050,
0, 1049, 0, 0, 0, 0, 1048, 1047, 0, 1046, 0, 0, 0, 1045, 0, 0, 0,
0, 0, 0, 0, 0, 1044, 1043, 0, 1042, 0, 0, 0, 1041, 0, 0, 0, 0, 0,
0, 0, 1040, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1039, 0, 1038, 1037, 0, 0, 1036, 1035, 0, 1034, 0, 0, 0, 0, 1033,
1032, 0, 1031, 0, 0, 0, 1030, 0, 0, 0, 0, 0, 0, 0, 0, 1029, 1028,
0, 1027, 0, 0, 0, 1026, 0, 0, 0, 0, 0, 0, 0, 1025, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1024, 1023, 0, 1022,
1021, 0, 0, 0, 0, 0, 0, 0, 1020, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1019, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1018, 0, 0, 0, 1017, 0, 1016, 1015, 0, 0, 0, 0,
1012, 0, 0, 1011, 1010, 0, 1009, 0, 0, 0, 0, 0, 0, 1008, 0, 1007,
1006, 0, 0, 1005, 1004, 0, 1003, 0, 0, 0, 0, 1002, 1001, 0, 1000,
0, 0, 999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 998, 0, 997, 996, 0,
0, 995, 994, 0, 993, 0, 0, 0, 0, 992, 991, 0, 990, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 988, 987, 0, 986, 0, 0, 0, 985, 0, 0, 0,
0, 0, 0, 0, 984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 983, 0, 982, 981, 0, 0, 980, 979, 0, 978, 0, 0, 0, 0, 977,
976, 0, 975, 0, 0, 0, 974, 0, 0, 0, 0, 0, 0, 0, 0, 973,
971, 0, 0, 0, 970, 0, 0, 0, 0, 0, 0, 0, 969, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 968, 967, 0, 966, 0, 0, 0, 965, 0,
0, 0, 0, 0, 964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
963, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 962, 0, 961, 960, 0, 0,
959, 958, 0, 957, 0, 0, 0, 0, 956, 955, 0, 954, 0, 0, 0, 953,
0, 0, 0, 0, 0, 0, 952, 951, 0, 950, 0, 0, 0, 949, 0, 0, 0, 0,
0, 0, 0, 948, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 945, 0, 0, 0, 944, 0, 0, 0, 0, 0, 0, 0, 943, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 942, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 941, 940, 0, 939, 0, 0, 0, 938, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 936, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 935, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 934, 0, 0, 0,
0, 0, 0, 0, 930, 0, 929, 928, 0, 0, 927, 926, 0, 925, 0, 0,
0, 0, 0, 0, 924, 0, 923, 922, 0, 0, 921, 920, 0, 919, 0, 0, 0, 0,
0, 0, 0, 915, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
914, 0, 913, 912, 0, 0, 911, 910, 0, 909, 0, 0, 0, 0,
0, 0, 0, 905, 0, 0, 0, 0, 0, 0, 0, 0, 904, 903, 0, 902,
0, 0, 0, 901, 0, 0, 0, 0, 0, 0, 0, 900, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 899, 0, 898, 897, 0, 0, 896, 895,
0, 894, 0, 0, 0, 0, 893, 892, 0, 891, 0, 0, 0, 890, 0, 0,
0, 0, 0, 889, 888, 0, 887, 0, 0, 0, 886, 0, 0, 0, 0, 0, 0, 0,
885, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 884, 883, 0,
882, 0, 0, 0, 881, 0, 0, 0, 0, 0, 0, 0, 880, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 879, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
878, 0, 877, 876, 0, 0, 875, 874, 0, 873, 0, 0, 0, 0,
0, 0, 0, 869, 0, 0, 0, 0, 0, 0, 0, 0, 868, 867, 0, 866,
0, 0, 0, 865, 0, 0, 0, 0, 0, 0, 0, 864, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 863, 862, 0, 861, 0, 0, 0, 860, 0, 0, 0,
0, 0, 0, 0, 859, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 857, 856, 0, 855,
0, 0, 0, 0, 0, 0, 853, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 852, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 851, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 850,
0, 0, 847, 846, 0, 845, 0, 0, 0, 0, 844, 843, 0, 842, 0, 0,
0, 841, 0, 0, 0, 0, 0, 0, 0, 0, 840, 839, 0, 838, 0, 0,
0, 0, 0, 0, 0, 0, 836, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 835, 834, 0, 833, 0, 0, 0, 832, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 830, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 829, 828, 0, 827, 0, 0, 0, 826, 0, 0, 0, 0,
0, 0, 0, 825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 822, 821, 0, 820, 0, 0, 0, 819, 0, 0,
0, 0, 0, 0, 0, 818, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 816, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10, 0, 0, 0, 0, 0, 0, 0, 815, 0, 0, 0, 814, 0, 813, 812, 0, 0, 0,
0, 0, 0, 811, 0, 0, 0, 810, 0, 809, 808, 0, 0, 0, 0, 807,
0, 806, 805, 0, 0, 804, 803, 0, 802, 0, 0, 0, 0, 0, 0, 0,
801, 0, 0, 0, 800, 0, 799, 798, 0, 0, 0, 0, 797, 0, 796, 795,
0, 0, 794, 793, 0, 792, 0, 0, 0, 0, 0, 0, 791, 0, 790, 789, 0, 0,
787, 0, 786, 0, 0, 0, 0, 785, 784, 0, 783, 0, 0, 0, 782, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 781, 0, 0, 0, 780, 0, 779,
0, 0, 0, 0, 777, 0, 776, 775, 0, 0, 774, 773, 0, 772, 0, 0,
0, 0, 0, 0, 771, 0, 770, 769, 0, 0, 768, 767, 0, 766, 0, 0, 0, 0,
0, 0, 0, 762, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
761, 0, 760, 759, 0, 0, 758, 757, 0, 756, 0, 0, 0, 0,
0, 0, 0, 752, 0, 0, 0, 0, 0, 0, 0, 0, 751, 750, 0, 749,
0, 0, 0, 748, 0, 0, 0, 0, 0, 0, 0, 747, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 746, 0, 0, 0, 745, 0,
744, 743, 0, 0, 0, 0, 742, 0, 741, 740, 0, 0, 739, 738,
0, 0, 0, 0, 0, 0, 736, 0, 735, 734, 0, 0, 733, 732, 0, 731, 0, 0,
0, 0, 730, 729, 0, 728, 0, 0, 0, 727, 0, 0, 0, 0, 0, 0, 0, 0,
724, 0, 0, 723, 722, 0, 721, 0, 0, 0, 0, 720,
719, 0, 718, 0, 0, 0, 717, 0, 0, 0, 0, 0, 0, 0, 0, 716,
714, 0, 0, 0, 713, 0, 0, 0, 0, 0, 0, 0, 712, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 711, 0, 710,
707, 0, 706, 0, 0, 0, 0, 705, 704, 0, 703, 0, 0, 0, 702, 0, 0, 0,
0, 0, 0, 0, 0, 701, 700, 0, 699, 0, 0, 0, 698, 0, 0, 0, 0, 0,
0, 697, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 696, 695,
0, 694, 0, 0, 0, 693, 0, 0, 0, 0, 0, 0, 0, 692, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 691, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 690, 0, 0, 0, 689, 0, 688, 687, 0, 0, 0, 0, 686,
0, 685, 684, 0, 0, 683, 682, 0, 681, 0, 0, 0, 0, 0,
0, 0, 677, 676, 0, 675, 0, 0, 0, 0, 674, 673, 0, 672,
0, 0, 0, 671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 670, 0, 669, 668,
667, 666, 0, 665, 0, 0, 0, 0, 664, 663, 0, 662, 0, 0, 0, 661,
0, 0, 0, 0, 0, 0, 0, 0, 660, 659, 0, 658, 0, 0, 0, 657, 0, 0,
0, 0, 0, 656, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 655, 0, 654, 653, 0, 0, 652, 651, 0, 650, 0, 0, 0, 0,
647, 0, 0, 0, 646, 0, 0, 0, 0, 0, 0, 0, 0, 645, 644, 0,
643, 0, 0, 0, 642, 0, 0, 0, 0, 0, 0, 0, 641, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 640, 639, 0, 638, 0, 0, 0, 637, 0, 0,
0, 0, 0, 0, 0, 636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 634, 0, 633, 632, 0, 0,
630, 0, 629, 0, 0, 0, 0, 628, 627, 0, 626, 0, 0, 0, 625, 0,
0, 0, 0, 0, 0, 0, 0, 624, 623, 0, 622, 0, 0, 0, 621, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
619, 618, 0, 617, 0, 0, 0, 616, 0, 0, 0, 0, 0, 0, 0, 615,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 614, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
612, 0, 611, 0, 0, 0, 610, 0, 0, 0, 0, 0, 0, 0,
609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 608, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 607, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 606, 0, 0, 0, 605, 0, 604,
603, 0, 0, 0, 0, 602, 0, 601, 600, 0, 0, 599, 598, 0, 597, 0,
0, 0, 0, 0, 596, 0, 595, 594, 0, 0, 593, 592, 0, 591, 0, 0, 0, 0,
590, 589, 0, 588, 0, 0, 0, 587, 0, 0, 0, 0, 0, 0,
585, 584, 0, 0, 583, 582, 0, 581, 0, 0, 0, 0, 580, 579,
0, 578, 0, 0, 0, 577, 0, 0, 0, 0, 0, 0, 0, 0, 576, 575,
0, 573, 0, 0, 0, 0, 0, 0, 0, 572, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 571, 0, 570, 569, 0, 0,
0, 0, 0, 0, 565, 564, 0, 563, 0, 0, 0, 562, 0, 0, 0, 0,
0, 0, 0, 0, 561, 560, 0, 559, 0, 0, 0, 558, 0, 0, 0, 0, 0, 0,
557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 556, 555, 0,
554, 0, 0, 0, 553, 0, 0, 0, 0, 0, 0, 0, 552, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
549, 548, 0, 0, 547, 546, 0, 545, 0, 0, 0, 0, 544, 543,
0, 542, 0, 0, 0, 541, 0, 0, 0, 0, 0, 0, 0, 0, 540, 539,
0, 537, 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 535, 534, 0, 533, 0, 0, 0, 532, 0, 0,
531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
530, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 529, 528, 0, 527, 0, 0, 0,
526, 0, 0, 0, 0, 0, 0, 0, 525, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 523, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 522, 0, 521,
520, 0, 0, 519, 518, 0, 517, 0, 0, 0, 0, 516, 515, 0, 514, 0,
0, 0, 0, 0, 0, 0, 0, 0, 512, 511, 0, 510, 0, 0, 0, 509,
0, 0, 0, 0, 0, 0, 0, 508, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
506, 0, 505, 0, 0, 0, 504, 0, 0, 0, 0, 0, 0, 0,
503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 502, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 501, 500, 0, 499, 0, 0, 0, 498, 0, 0, 0,
0, 497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 496,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 494, 493, 0, 492, 0, 0, 0, 491, 0,
0, 0, 0, 0, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 488, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 487, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 486, 0, 0, 0,
0, 0, 0, 0, 482, 0, 481, 480, 0, 0, 479, 478, 0, 477,
0, 0, 0, 0, 0, 0, 476, 0, 475, 474, 0, 0, 473, 472, 0, 471, 0, 0,
0, 470, 469, 0, 468, 0, 0, 0, 467, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 466, 0, 465, 464, 0, 0, 463, 462, 0, 461, 0,
458, 0, 0, 0, 457, 0, 0, 0, 0, 0, 0, 0, 0, 456, 455, 0,
454, 0, 0, 0, 453, 0, 0, 0, 0, 0, 0, 0, 452, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 451, 0, 450, 449, 0, 0, 448,
447, 0, 446, 0, 0, 0, 0, 445, 444, 0, 443, 0, 0, 0, 442, 0, 0, 0,
0, 0, 0, 0, 441, 440, 0, 439, 0, 0, 0, 438, 0, 0, 0, 0, 0, 0,
0, 437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 436, 435,
0, 434, 0, 0, 0, 433, 0, 0, 0, 0, 0, 0, 0, 432, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 430, 0, 429, 428, 0, 0, 427, 426, 0, 425, 0,
422, 0, 0, 0, 421, 0, 0, 0, 0, 0, 0, 0, 0, 420, 419, 0,
418, 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 415, 414, 0, 413, 0, 0, 0, 412, 0, 0,
0, 0, 0, 0, 0, 411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 409, 408, 0, 407,
0, 0, 0, 0, 0, 0, 405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 402,
0, 0, 399, 398, 0, 397, 0, 0, 0, 0, 396, 395, 0, 394, 0, 0,
0, 393, 0, 0, 0, 0, 0, 0, 0, 0, 392, 391, 0, 390, 0, 0,
0, 0, 0, 0, 0, 0, 388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 387, 386, 0, 385, 0, 0, 0, 384, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 382, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 381, 380, 0, 379, 0, 0, 0, 378, 0, 0, 0, 0,
0, 0, 0, 377, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 374, 373, 0, 372, 0, 0, 0, 371, 0, 0,
0, 0, 0, 0, 0, 370, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 368, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 366, 0, 365, 364, 0, 0, 363, 362,
0, 361, 0, 0, 0, 0, 360, 359, 0, 358, 0, 0, 0, 357, 0, 0,
0, 0, 0, 356, 355, 0, 354, 0, 0, 0, 353, 0, 0, 0, 0, 0, 0, 0,
352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 350, 0,
349, 0, 0, 0, 348, 0, 0, 0, 0, 0, 0, 0, 347, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 345,
344, 0, 343, 0, 0, 0, 342, 0, 0, 0, 0, 0, 0, 0, 341, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 340, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
338, 337, 0, 336, 0, 0, 0, 335, 0, 0, 0, 0, 0, 0, 0, 334,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
330, 329, 0, 328, 0, 0, 0, 327, 0, 0, 0, 0, 0, 0, 0, 326,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 325, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 323, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1
int products[] = {
48, 72, 80, 108, 112, 120, 162, 168, 176,
270, 272, 280, 300, 304, 312, 368, 378, 392, 396, 405, 408,
420, 440, 450, 456, 464, 468, 496, 500, 520, 552, 567, 588,
612, 616, 630, 656, 660, 675, 680, 684, 696, 700, 702, 728,
744, 750, 760, 780, 828, 882, 888, 891, 918, 920, 924, 945,
1020, 1026, 1044, 1050, 1053, 1064, 1092,
1100, 1116, 1125, 1140, 1144, 1160, 1170, 1240, 1242, 1250, 1288,
1300, 1323, 1332, 1352, 1372, 1377, 1380, 1386, 1428, 1452, 1470,
1476, 1480, 1485, 1496, 1530, 1539, 1540, 1566, 1575, 1596, 1624,
1638, 1640, 1650, 1672, 1674, 1700, 1710, 1716, 1736, 1740, 1750,
1755, 1768, 1820, 1860, 1863, 1875, 1900, 1932, 1950, 1976, 1998,
2024, 2028, 2058, 2070, 2072, 2079, 2142, 2156, 2178, 2205, 2214,
2220, 2244, 2295, 2296, 2300, 2312, 2349, 2380, 2392, 2394, 2420,
2436, 2450, 2457, 2460, 2475, 2508, 2511, 2548, 2550, 2552, 2565,
2574, 2584, 2604, 2610, 2625, 2652, 2660, 2728, 2750, 2790, 2850,
2860, 2888, 2898, 2900, 2925, 2964, 2997, 3016, 3036, 3042, 3087,
3100, 3105, 3108, 3128, 3213, 3220, 3224, 3234, 3250, 3256, 3267,
3321, 3330, 3332, 3366, 3380, 3388, 3430, 3444, 3450, 3465, 3468,
3496, 3588, 3591, 3608, 3630, 3654, 3675, 3690, 3700, 3724, 3740,
3762, 3822, 3825, 3828, 3848, 3850, 3861, 3876, 3906, 3915, 3944,
3978, 4004, 4060, 4092, 4095, 4100, 4125, 4180, 4185, 4216, 4232,
4250, 4264, 4275, 4332, 4340, 4347, 4350, 4375, 4408, 4420, 4446,
4508, 4524, 4550, 4554, 4563, 4650, 4662, 4692, 4712, 4732, 4750,
4802, 4836, 4851, 4875, 4884, 4940, 4995, 4998, 5032, 5049, 5060,
5070, 5082, 5145, 5166, 5175, 5180, 5202, 5236, 5244, 5324, 5336,
5355, 5382, 5390, 5412, 5445, 5481, 5535, 5550, 5576, 5586, 5624,
5643, 5684, 5704, 5733, 5740, 5742, 5750, 5772, 5775, 5780, 5814,
5852, 5859, 5916, 5950, 5967, 5980, 5985, 6050, 6076, 6125, 6138,
6150, 6188, 6232, 6292, 6324, 6348, 6370, 6375, 6380, 6396, 6435,
6460, 6498, 6525, 6612, 6650, 6669, 6728, 6762, 6786, 6808, 6820,
6825, 6831, 6875, 6916, 6975, 6993, 7038, 7068, 7084, 7098, 7125,
7150, 7192, 7203, 7220, 7245, 7250, 7252, 7254, 7326, 7436, 7497,
7540, 7544, 7546, 7548, 7605, 7623, 7688, 7749, 7750, 7803, 7820,
7866, 7986, 8004, 8036, 8050, 8060, 8073, 8085, 8092, 8118, 8125,
8140, 8228, 8325, 8330, 8364, 8372, 8379, 8415, 8436, 8450, 8470,
8526, 8556, 8575, 8584, 8613, 8625, 8658, 8670, 8721, 8740, 8788,
8874, 8918, 8925, 8932, 9009, 9020, 9044, 9075, 9114, 9135, 9176,
9196, 9207, 9225, 9250, 9310, 9348, 9350, 9405, 9438, 9486, 9512,
9522, 9548, 9555, 9594, 9620, 9625, 9724, 9747, 9765, 9860, 9918,
10150, 10168, 10179, 10212,
10250, 10450, 10540, 10556, 10557, 10580,
10830, 10850, 10868, 10875, 10878, 10881,
10948, 10952, 10989, 11020, 11050, 11115,
11322, 11375, 11385, 11396, 11492, 11532,
11625, 11655, 11662, 11780, 11781, 11799,
12054, 12075, 12136, 12138, 12177, 12236,
12342, 12350, 12495, 12546, 12580, 12628,
12834, 12844, 12876, 12915, 12950, 12987,
13005, 13034, 13156, 13167, 13182, 13310,
13475, 13671, 13764, 13794, 13804, 13875,
13923, 13940, 13965, 14014, 14022, 14025,
14260, 14268, 14283, 14350, 14355, 14375,
14391, 14450, 14535, 14756, 14812, 14875,
15138, 15162, 15190, 15225, 15252, 15318,
15345, 15375, 15428, 15548, 15561, 15580,
15925, 15939, 15950, 16150, 16182, 16245,
16275, 16317, 16428, 16492, 16562, 16575,
16905, 16965, 16974, 16983, 17020, 17050,
17204, 17238, 17298, 17493, 17595, 17612,
18009, 18050, 18081, 18125, 18130, 18135,
18204, 18207, 18315, 18326, 18513, 18525,
18850, 18860, 18865, 18975, 18981, 19074,
19220, 19228, 19251, 19266, 19314, 19375,
19665, 19684, 19773, 19844, 19894, 19964,
19965, 20090, 20097, 20125, 20150, 20172,
20570, 20646, 20691, 20825, 20956, 21021,
21033, 21054, 21125, 21164, 21175, 21266,
21658, 21675, 21692, 21812, 21850, 21879,
21964, 21970, 22022, 22185, 22218, 22295,
22743, 22785, 22878, 22940, 22977, 22990,
23125, 23188, 23275, 23276, 23322, 23375,
23780, 23805, 23826, 23828, 23925, 23985,
24050, 24206, 24225, 24244, 24273, 24453,
24843, 25012, 25025, 25047, 25172, 25230,
25270, 25375, 25382, 25389, 25420, 25461,
25947, 26026, 26125, 26350, 26404, 26411,
26450, 26505, 26588, 26650, 26862, 26908,
27436, 27489, 27508, 27531, 27550, 27625,
27676, 27716, 27830, 27885, 27951, 28126,
28611, 28652, 28730, 28798, 28830, 28899,
28971, 29155, 29282, 29302, 29325, 29348,
29716, 29766, 29841, 30015, 30044, 30135,
30225, 30258, 30303, 30340, 30345, 30525,
30932, 30969, 31059, 31213, 31262, 31365,
31372, 31434, 31450, 31581, 31625, 31635,
32110, 32116, 32186, 32375, 32487, 32585,
32708, 32725, 32775, 32946, 32955, 33033,
33418, 33524, 33579, 33620, 33759, 33813,
33825, 34276, 34317, 34485, 34606, 34684,
35090, 35150, 35322, 35378, 35525, 35588,
35650, 35739, 35836, 35875, 35972, 36075,
36946, 36963, 36975, 37004, 37030, 37076,
37107, 37191, 37323, 37375, 37444, 37468,
37975, 38073, 38295, 38318, 38332, 38675,
38709, 38870, 38950, 38962, 39039, 39325,
39710, 39875, 39882, 39886, 39897, 39975,
40052, 40204, 40222, 40293, 40362, 40375,
41154, 41262, 41325, 41405, 41492, 41503,
41574, 41745, 41876, 42021, 42050, 42189,
42625, 42772, 42826, 43095, 43197, 43225,
43245, 43263, 43732, 43911, 43923, 43953,
44289, 44506, 44649, 44764, 44770, 44919,
44950, 44954, 45125, 45254, 45325, 45356,
46585, 46748, 46893, 46930, 47068, 47125,
47138, 47150, 47151, 47175, 47212, 47396,
48279, 48285, 48314, 48334, 48484, 48668,
48807, 48875, 49010, 49036, 49049, 49077,
49972, 50025, 50127, 50225, 50286, 50375,
50430, 50468, 50575, 50578, 50692, 50875,
51909, 52173, 52234, 52275, 52316, 52325,
52371, 52390, 52514, 52598, 52635, 52725,
53475, 53482, 53505, 53613, 53650, 53754,
53958, 53998, 54145, 54188, 54418, 54549,
55419, 55506, 55545, 55594, 55796, 55825,
55924, 56265, 56277, 56355, 56375, 56525,
57477, 57498, 57681, 57722, 57868, 57967,
58190, 58305, 58311, 58425, 58443, 58870,
59675, 59774, 59823, 59829, 60125, 60236,
60306, 60333, 60515, 60543, 60775, 61132,
61642, 61659, 61731, 61828, 61893, 61985,
62271, 62361, 62530, 62678, 62814, 63075,
63916, 64124, 64141, 64158, 64239, 64467,
64676, 65065, 65219, 65348, 65366, 65596,
66125, 66297, 66470, 66625, 66748, 66759,
66861, 67146, 67155, 67270, 67425, 67431,
68425, 68450, 68590, 68614, 68770, 68782,
68875, 68894, 68913, 69003, 69290, 69454,
70395, 70525, 70587, 70602, 70642, 70707,
70725, 70805, 71094, 71188, 71225, 71668,
72471, 72501, 72964, 73002, 73036, 73205,
73255, 73346, 73515, 73593, 73625, 73689,
74907, 74958, 75429, 75645, 75803, 75850,
75867, 76342, 76475, 76874, 76895, 77077,
78039, 78155, 78166, 78292, 78351, 78585,
78625, 78771, 78884, 78897, 78925, 79135,
80475, 80631, 80852, 80937, 80997, 81466,
81548, 81549, 81627, 82225, 82251, 82365,
83375, 83391, 83398, 83421, 83486, 83545,
83810, 84050, 84175, 84249, 84303, 84721,
86275, 86428, 86515, 86583, 86756, 86779,
87125, 87172, 87285, 87362, 87412, 87542,
88806, 88825, 88837, 89001, 89125, 89175,
89590, 89661, 89930, 90117, 90354, 90364,
92055, 92225, 92365, 92414, 92463, 92510,
92575, 93058, 93092, 93275, 93357, 93775,
94809, 95139, 95325, 95571, 95795, 95830,
95874, 96026, 96237, 96278, 96425, 96596,
97682, 98022, 98049, 98394, 98397, 98441,
98494, 98553, 98716, 98735, 99127, 99275,
100719, 100793, 100905, 101062, 102051, 102245,
102459, 102487, 102557, 102675, 102885, 102921,
103246, 103341, 103675, 103935, 104044, 104181,
104284, 104690, 104811, 104907, 104975, 105125,
105754, 105903, 105963, 106227, 106375, 106641,
106782, 106930, 107065, 107525, 107559, 107653,
109142, 109174, 109330, 109388, 109417, 109503,
109554, 110019, 110075, 110331, 110495, 110789,
111910, 111925, 112047, 112375, 112385, 112406,
112437, 112651, 113135, 113553, 113775, 114057,
115311, 115797, 116058, 116242, 116402, 116522,
116725, 116932, 116963, 117249, 117325, 117334,
117875, 118490, 119119, 119164, 119187, 119306,
120125, 120175, 120213, 120785, 120802, 120835,
122018, 122199, 122525, 122815, 122825, 123025,
123627, 123783, 123823, 123981, 124025, 124468,
125097, 125229, 125426, 125541, 125715, 125829,
125902, 125948, 126075, 126445, 127075, 127426,
128271, 128673, 128877, 128986, 129115, 129311,
129514, 129605, 130134, 130203, 130585, 130975,
131495, 132153, 132158, 132275, 132618, 133052,
133133, 133209, 133342, 133570, 133705, 134113,
134895, 134995, 135014, 135531, 135575, 136045,
136214, 136325, 136367, 136851, 137275, 137547,
138621, 138765, 138985, 139113, 139564, 139587,
139601, 139638, 140714, 140777, 141267, 141933,
142805, 142970, 143143, 143375, 143745, 143811,
144039, 144279, 144305, 144417, 144925, 145475,
146334, 146523, 146566, 146575, 147033, 147175,
147436, 147591, 147706, 147741, 147994, 148010,
149435, 149702, 149891, 150183, 150590, 150765,
150898, 151294, 151525, 151593, 152218, 152438,
153729, 154105, 154652, 154693, 154869, 155771,
156066, 156325, 156426, 156674, 156695, 157035,
158015, 158389, 158565, 158631, 158804, 158875,
159562, 159790, 160173, 160225, 160395, 161161,
162129, 162578, 163370, 163415, 163713, 163761,
163990, 163995, 164169, 164255, 164331, 164738,
166419, 166634, 167042, 167214, 167865, 168175,
168609, 168674, 169099, 169169, 169756, 170126,
171462, 171475, 171535, 171925, 171941, 171955,
172235, 172546, 172822, 172887, 172975, 173225,
174603, 174685, 174783, 174845, 174902, 175491,
175972, 176001, 176157, 176505, 176605, 177023,
178334, 178746, 178802, 178959, 179075, 180154,
180761, 180895, 181203, 181447, 181917, 182505,
183365, 183425, 183483, 183799, 184093, 184382,
184910, 185725, 186093, 186238, 186694, 186702,
187395, 187775, 188108, 188139, 188518, 188853,
188922, 188993, 189625, 190333, 190463, 190855,
191634, 191675, 192027, 192185, 192995, 193325,
193430, 193479, 194271, 194463, 194579, 194996,
196137, 196677, 197098, 197846, 198237, 198927,
199082, 199927, 200013, 200158, 200355, 200725,
203203, 203319, 203522, 203665, 204321, 204425,
205751, 205942, 206045, 206305, 206349, 206635,
208444, 208495, 208658, 208715, 209209, 209457,
209525, 210125, 210749, 210826, 211071, 212602,
214225, 214291, 214455, 214774, 214795, 215747,
215878, 216775, 216890, 217217, 217341, 217558,
219351, 219373, 219501, 219849, 220255, 221030,
221122, 221221, 221559, 221991, 222015, 222111,
224516, 224553, 224825, 224939, 225446, 225885,
225998, 226347, 226525, 226941, 228085, 228206,
228781, 229586, 229593, 229957, 230115, 230318,
231035, 231275, 231725, 231978, 232101, 232562,
233818, 234025, 234099, 234175, 234639, 235011,
235246, 235445, 235543, 235586, 236406, 236555,
239343, 239575, 239685, 240065, 240149, 240526,
240695, 240737, 240994, 241129, 242121, 242515,
244205, 244559, 244783, 245055, 245985, 246123,
246202, 246235, 247107, 247225, 247247, 248788,
249951, 250325, 250563, 250821, 251275, 252586,
252655, 253011, 253175, 253253, 254634, 255189,
258115, 258819, 258874, 259233, 259259, 259325,
259407, 259666, 260110, 260642, 260678, 260710,
262885, 263097, 263302, 264275, 264385, 265475,
265727, 265837, 266955, 267189, 267197, 267325,
269059, 269555, 270193, 270215, 270231, 270802,
272194, 272855, 272935, 273325, 273581, 273885,
276573, 276575, 277365, 277574, 278018, 278179,
278369, 278690, 279357, 279775, 280041, 280053,
283383, 283475, 284053, 284258, 284954, 285131,
285770, 287287, 287451, 287638, 287738, 288145,
290605, 290966, 291005, 291305, 291893, 292175,
292201, 292494, 293335, 293595, 293854, 294151,
296769, 296989, 297910, 298265, 298623, 298775,
299299, 299367, 300237, 300713, 302005, 303025,
304606, 305045, 305283, 305762, 305767, 305942,
306397, 306475, 307582, 308074, 308357, 308913,
311395, 312325, 312666, 312987, 313565, 314019,
314041, 314171, 314534, 314755, 314870, 315425,
317471, 318478, 318565, 318734, 318835, 318903,
319319, 319345, 319390, 320013, 320045, 322161,
324818, 325335, 325622, 325703, 325822, 326337,
326859, 326975, 327795, 328757, 329623, 330395,
331683, 331731, 333355, 333925, 335405, 335559,
335699, 336091, 336743, 336774, 336973, 337502,
339031, 339521, 340442, 340535, 341341, 341446,
341734, 341887, 342309, 343077, 343915, 344379,
347633, 347967, 348725, 348843, 349095, 349401,
349525, 349809, 350727, 350987, 351538, 351785,
355570, 355946, 356345, 356421, 356915, 357309,
357425, 359414, 359513, 360778, 360789, 361361,
364021, 364154, 364994, 365585, 365835, 366415,
367114, 368039, 369265, 369303, 369985, 370025,
373182, 373737, 374255, 375193, 375683, 376475,
377245, 377377, 378235, 378301, 378879, 378917,
381951, 381997, 382075, 382109, 382655, 383439,
383525, 384307, 384659, 384826, 385526, 386425,
389499, 390165, 390166, 390963, 391017, 391065,
391534, 391685, 391989, 393421, 394010, 394953,
398866, 398905, 399475, 400078, 400673, 400775,
401511, 401698, 401882, 402866, 403403, 403535,
406802, 406847, 407407, 407827, 408291, 408425,
409975, 410669, 410839, 411033, 411845, 412114,
414715, 415454, 416361, 416585, 417027, 417074,
417175, 417571, 417605, 418035, 419881, 421685,
424589, 424762, 424879, 425258, 425315, 425546,
425845, 426374, 426387, 427025, 427063, 427431,
431365, 431457, 431607, 432055, 435638, 435953,
436449, 437255, 438741, 438991, 440657, 440781,
445835, 445991, 446369, 446865, 447005, 447083,
447146, 447811, 447925, 448063, 450262, 450385,
454181, 454597, 455469, 455793, 455877, 456025,
456475, 456665, 456909, 458643, 458689, 458913,
462111, 462275, 462346, 462553, 462722, 464163,
465595, 466697, 466735, 466755, 467495, 468999,
472305, 472549, 473271, 474513, 474734, 476749,
477158, 477717, 478101, 479085, 480491, 480766,
484561, 485537, 486098, 486266, 487227, 487475,
487490, 488433, 488733, 489325, 490637, 491878,
496223, 496947, 497705, 497798, 498883, 499681,
500395, 501787, 502918, 503234, 505161, 505325,
508277, 508805, 508898, 509675, 510663, 511819,
512006, 512169, 512601, 512746, 512981, 514786,
517979, 518035, 519622, 520331, 520421, 520923,
521110, 521594, 521645, 523957, 527065, 527307,
533355, 533533, 533919, 535717, 536393, 536558,
536935, 537251, 539121, 539695, 540175, 541167,
542659, 543286, 543895, 544011, 544765, 544825,
545054, 545343, 546231, 546325, 547491, 548359,
555458, 555611, 555814, 555841, 557566, 557583,
558467, 559265, 559682, 559773, 561290, 562438,
564995, 567853, 568178, 569023, 570515, 570741,
571795, 572242, 572663, 572907, 573562, 573965,
578289, 578347, 579945, 580601, 581405, 581529,
581647, 581825, 582335, 582958, 583015, 583219,
587301, 588115, 588965, 590359, 591015, 593021,
593929, 594035, 594146, 594473, 595441, 595515,
600281, 600457, 600691, 601315, 602485, 602547,
602823, 603725, 603911, 604299, 604877, 605098,
612157, 613118, 614422, 615043, 615505, 616975,
618171, 618233, 620194, 620289, 620517, 620806,
623181, 623441, 624169, 625611, 625807, 628694,
630539, 631465, 633919, 634114, 634933, 636585,
639331, 639561, 640211, 640871, 644397, 644725,
645337, 645909, 647185, 648907, 649078, 649165,
651833, 653315, 653429, 653457, 654493, 655402,
656183, 656903, 657662, 658255, 659525, 659813,
665482, 669185, 670719, 671099, 675393, 676286,
677005, 677846, 680485, 680846, 681207, 682486,
685069, 687115, 687242, 687401, 689210, 689843,
692461, 692714, 693519, 693842, 693935, 694083,
700843, 701437, 702559, 702658, 704099, 705686,
705755, 708883, 709142, 709423, 709631, 710645,
715737, 719095, 719345, 720575, 720797, 721149,
722361, 724101, 724594, 725249, 726869, 727415,
730639, 730825, 731235, 733381, 734635, 734638,
735034, 737426, 737817, 737891, 742577, 743002,
748867, 749177, 751502, 751709, 754354, 754377,
754851, 755573, 756613, 757393, 758582, 759115,
761515, 762671, 763347, 764405, 764855, 768009,
768955, 769119, 770185, 772179, 773605, 773927,
779433, 781665, 782254, 782391, 782971, 783959,
785213, 785519, 785806, 786335, 787175, 788785,
792281, 793117, 796195, 796835, 798475, 798721,
800513, 803551, 804287, 804837, 806113, 809042,
813967, 814055, 814555, 814929, 815269, 816221,
817581, 817663, 818363, 818662, 823361, 824182,
828269, 828971, 829226, 829939, 830297, 830414,
831575, 831649, 832117, 833187, 833721, 836349,
839914, 841841, 841935, 843479, 843657, 843755,
845871, 850586, 851105, 852267, 853615, 854335,
861707, 862017, 862025, 866723, 866822, 868205,
870758, 872053, 872275, 873422, 874437, 876826,
884374, 885391, 886414, 887777, 888925, 889778,
889865, 891219, 893809, 894179, 894691, 896506,
906059, 906685, 907647, 908831, 908905, 910385,
910803, 912247, 912373, 912485, 914641, 916487,
921475, 921557, 921633, 924482, 926497, 926782,
927707, 927979, 929305, 930291, 931209, 932955,
943041, 947546, 947807, 949003, 950521, 951142,
951171, 951235, 952679, 954845, 955451, 959077,
964894, 966329, 966575, 969215, 971509, 971618,
973063, 973617, 975415, 978835, 979693, 980837,
988057, 988418, 989417, 990437, 990698, 990847,
992525, 994449, 994555, 994903, 997165, 997339,
1004705, 1005238, 1006733,
1007083, 1007165, 1012894, 1013173,
1018381, 1021269, 1023729, 1024309,
1024426, 1026817, 1026861, 1028489,
1037153, 1038635, 1039071, 1040763,
1042685, 1049191, 1053987, 1056757,
1062761, 1063145, 1063517, 1063713,
1063865, 1065935, 1066121, 1067857,
1076537, 1078259, 1083047, 1083121,
1084039, 1085773, 1085926, 1086891,
1099825, 1100869, 1101957, 1102045,
1102551, 1103414, 1104299, 1105819,
1115569, 1115661, 1117865, 1119371,
1121549, 1121894, 1123343, 1125655,
1135345, 1136863, 1137873, 1139677,
1140377, 1146442, 1147619, 1155865,
1162213, 1169311, 1171001, 1172354,
1173381, 1175675, 1178709, 1181257,
1192895, 1195061, 1196069, 1196506,
1196569, 1198483, 1199266, 1201915,
1213511, 1213526, 1213563, 1213682,
1215245, 1215487, 1215665, 1216171,
1236273, 1239953, 1242201, 1242989,
1243839, 1244495, 1245621, 1245811,
1259871, 1262723, 1263661, 1266325,
1266749, 1267474, 1268915, 1269359,
1280015, 1281137, 1281865, 1281974,
1282633, 1284899, 1285999, 1286965,
1300233, 1301027, 1302775, 1303985,
1306137, 1306877, 1310133, 1310278,
1329621, 1331729, 1334667, 1336783,
1338623, 1339634, 1340003, 1341395,
1351166, 1353205, 1354111, 1354886,
1356277, 1356901, 1358215, 1362635,
1379035, 1381913, 1386723, 1388645,
1389223, 1389535, 1390173, 1392377,
1403225, 1405943, 1406095, 1406587,
1409785, 1410031, 1412327, 1414127,
1426713, 1428163, 1430605, 1431382,
1432417, 1433531, 1433729, 1433905,
1447873, 1448161, 1448402, 1454089,
1457395, 1457427, 1459354, 1459759,
1483339, 1485365, 1486047, 1486667,
1488403, 1489411, 1492309, 1496541,
1511653, 1512118, 1512745, 1514071,
1515839, 1516262, 1518005, 1519341,
1532795, 1533433, 1536055, 1536639,
1542863, 1544491, 1548339, 1550485,
1566461, 1567247, 1571735, 1575917,
1582009, 1582559, 1583023, 1585285,
1602403, 1604986, 1605837, 1608717,
1612682, 1616197, 1616402, 1617122,
1638505, 1639187, 1641809, 1642911,
1644155, 1655121, 1657415, 1657466,
1681691, 1682681, 1682841, 1685509,
1687829, 1689569, 1690715, 1691701,
1701343, 1701931, 1702115, 1702851,
1706215, 1709659, 1711435, 1711463,
1729937, 1731785, 1734605, 1735327,
1739881, 1742293, 1750507, 1751629,
1769261, 1771774, 1772855, 1773593,
1773669, 1776481, 1778498, 1781143,
1798899, 1801751, 1804231, 1804786,
1806091, 1807117, 1811485, 1812446,
1825579, 1826246, 1834963, 1836595,
1837585, 1843565, 1847042, 1847677,
1859435, 1869647, 1870297, 1872431,
1877953, 1878755, 1879537, 1885885,
1907689, 1908386, 1910051, 1916291,
1920983, 1922961, 1924814, 1929254,
1945349, 1951481, 1952194, 1955635,
1956449, 1957703, 1958887, 1964515,
1976777, 1978205, 1979939, 1980218,
1982251, 1984279, 1987453, 1988623,
2007467, 2009451, 2011373, 2017077,
2019127, 2019719, 2022605, 2024751,
2050841, 2052501, 2055579, 2056223,
2060455, 2062306, 2066801, 2070107,
2099785, 2100659, 2111317, 2114698,
2116543, 2117843, 2120393, 2121843,
2145913, 2146145, 2146981, 2147073,
2150477, 2153437, 2155657, 2164389,
2181067, 2183555, 2188021, 2189031,
2192065, 2193763, 2200429, 2203791,
2215457, 2215763, 2216035, 2219399,
2221271, 2224445, 2234837, 2237411,
2262957, 2266627, 2268177, 2271773,
2274393, 2275229, 2284997, 2285258,
2311205, 2313649, 2316955, 2320381,
2329187, 2330038, 2334145, 2336191,
2362789, 2363153, 2363486, 2367001,
2368333, 2368865, 2372461, 2377855,
2399567, 2405347, 2407479, 2412235,
2416193, 2419023, 2422109, 2424499,
2445773, 2453433, 2459303, 2461462,
2466827, 2469901, 2471045, 2473211,
2497759, 2501369, 2501917, 2505919,
2513095, 2519959, 2532235, 2536079,
2571233, 2572619, 2580565, 2580991,
2581934, 2582827, 2583303, 2585843,
2611037, 2612233, 2614447, 2618629,
2618998, 2624369, 2630257, 2631218,
2648657, 2655037, 2657661, 2667747,
2673539, 2674463, 2676395, 2678741,
2707063, 2707179, 2709239, 2710981,
2711471, 2714815, 2718669, 2732561,
2760953, 2764177, 2766049, 2767787,
2769487, 2770563, 2771431, 2778693,
2820103, 2827442, 2830145, 2831323,
2831647, 2838085, 2857921, 2861062,
2887221, 2893757, 2893881, 2898469,
2902291, 2904739, 2906449, 2915674,
2951069, 2951897, 2956115, 2970327,
2977051, 2986159, 2988073, 2991265,
3007693, 3022345, 3022438, 3025541,
3027973, 3033815, 3033877, 3034205,
3082729, 3085771, 3087095, 3090277,
3093409, 3093459, 3095309, 3101527,
3140486, 3144905, 3147331, 3151253,
3154591, 3159637, 3160729, 3168685,
3206269, 3206733, 3211817, 3230882,
3234199, 3235687, 3243737, 3246473,
3286355, 3292445, 3295331, 3299179,
3306801, 3307837, 3308987, 3316411,
3361795, 3363681, 3372149, 3374585,
3377129, 3377543, 3377915, 3379321,
3415997, 3420835, 3424361, 3425965,
3427391, 3427887, 3445403, 3453839,
3487627, 3491929, 3494413, 3495057,
3502969, 3514971, 3516263, 3518333,
3558583, 3569929, 3578455, 3585491,
3595659, 3604711, 3607315, 3607426,
3628411, 3637933, 3646313, 3648385,
3651583, 3655847, 3660151, 3662497,
3702923, 3706577, 3719573, 3728153,
3735407, 3743095, 3744653, 3746953,
3780295, 3789227, 3790655, 3800741,
3809927, 3816131, 3817879, 3827227,
3872901, 3881273, 3900281, 3915083,
3926629, 3928497, 3929941, 3933137,
3993743, 3997418, 4012465, 4012547,
4024823, 4031261, 4031705, 4035239,
4055843, 4081181, 4086511, 4089055,
4090757, 4093379, 4103239, 4121741,
4170751, 4172201, 4180963, 4187771,
4197431, 4219007, 4221811, 4231283,
4274803, 4277489, 4291593, 4302397,
4305505, 4309279, 4314311, 4319695,
4392287, 4395859, 4402867, 4405999,
4406811, 4416787, 4425499, 4429435,
4467073, 4479865, 4486909, 4502641,
4509973, 4511965, 4531115, 4533001,
4585973, 4586959, 4600897, 4602578,
4609423, 4617605, 4617931, 4619527,
4706513, 4709861, 4710729, 4721393,
4721519, 4724419, 4729081, 4739311,
4777721, 4780723, 4789169, 4793269,
4796351, 4803821, 4812035, 4821877,
4871087, 4875277, 4880485, 4883223,
4884763, 4890467, 4893779, 4903301,
4955143, 4999745, 5009837, 5034679,
5035589, 5047141, 5050241, 5069407,
5143333, 5155765, 5161217, 5178013,
5211503, 5219997, 5222587, 5231281,
5292413, 5296877, 5306917, 5316979,
5321303, 5323153, 5332255, 5343161,
5411139, 5436299, 5448839, 5459441,
5487317, 5511335, 5517163, 5528809,
5606135, 5617451, 5621447, 5622483,
5634343, 5635211, 5644387, 5651522,
5713145, 5724677, 5748431, 5756645,
5761691, 5768419, 5783557, 5784321,
5837009, 5841557, 5852327, 5858285,
5888069, 5891843, 5896579, 5897657,
5992765, 5996127, 5998331, 6009133,
6024007, 6024083, 6027707, 6047573,
6170417, 6182423, 6201209, 6224743,
6226319, 6229171, 6230319, 6243787,
6315517, 6316751, 6322079, 6343561,
6378985, 6387767, 6391861, 6409653,
6468037, 6483617, 6485011, 6503453,
6528799, 6534047, 6547495, 6578045,
6649159, 6658769, 6674393, 6675251,
6679351, 6704017, 6709469, 6725897,
6903867, 6918791, 6930763, 6958627,
6971107, 6979061, 6982823, 6999643,
7068605, 7119281, 7132231, 7139269,
7152655, 7166363, 7172191, 7206529,
7344685, 7358377, 7359707, 7367987,
7379021, 7395949, 7401443, 7424087,
7482377, 7517179, 7525837, 7534519,
7537123, 7556095, 7563113, 7620301,
7780091, 7795229, 7800127, 7829729,
7848589, 7851215, 7858097, 7867273,
7936093, 7947563, 7966211, 7979183,
7998403, 8026447, 8054141, 8059303,
8155351, 8176753, 8201599, 8234809,
8238581, 8258753, 8272201, 8297509,
8420933, 8448337, 8452891, 8477283,
8480399, 8516807, 8544523, 8550017,
8699995, 8707621, 8717789, 8723693,
8740667, 8773921, 8782579, 8804429,
8909119, 8930579, 8992813, 8995921,
9001687, 9018565, 9035849, 9036769,
9303983, 9309829, 9370805, 9379019,
9389971, 9411631, 9414613, 9472111,
9613007, 9622493, 9640535, 9649489,
9659011, 9732047, 9744757, 9781739,
9926323, 9965009, 9968453, 9993545, ,
** each of the thirteen card ranks has its own prime number
** deuce = 2
int primes[] = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41 };
int perm7[21][5] = {
{ 0, 1, 2, 3, 4 },
{ 0, 1, 2, 3, 5 },
{ 0, 1, 2, 3, 6 },
{ 0, 1, 2, 4, 5 },
{ 0, 1, 2, 4, 6 },
{ 0, 1, 2, 5, 6 },
{ 0, 1, 3, 4, 5 },
{ 0, 1, 3, 4, 6 },
{ 0, 1, 3, 5, 6 },
{ 0, 1, 4, 5, 6 },
{ 0, 2, 3, 4, 5 },
{ 0, 2, 3, 4, 6 },
{ 0, 2, 3, 5, 6 },
{ 0, 2, 4, 5, 6 },
{ 0, 3, 4, 5, 6 },
{ 1, 2, 3, 4, 5 },
{ 1, 2, 3, 4, 6 },
{ 1, 2, 3, 5, 6 },
{ 1, 2, 4, 5, 6 },
{ 1, 3, 4, 5, 6 },
{ 2, 3, 4, 5, 6 }
int perm6[6][5] =
{ 0, 1, 2, 3, 4 },
{ 0, 1, 2, 3, 5 },
{ 0, 1, 2, 4, 5 },
{ 0, 1, 3, 4, 5 },
{ 0, 2, 3, 4, 5 },
{ 1, 2, 3, 4, 5 },
常量定义//全部的牌型
#define ROYAL_FLUSH
#define STRAIGHT_FLUSH
#define FOUR_OF_A_KIND
#define FULL_HOUSE
#define FLUSH
#define STRAIGHT
#define THREE_OF_A_KIND
#define TWO_PAIR
#define ONE_PAIR
#define HIGH_CARD
//通过值获取不带花色的序号
#define RANK(x)
((x && 8) & 0xF)
/*static char *value_str[] = {
"RoyalFlush",
"Straight Flush",
"Four of a Kind",
"Full House",
"Straight",
"Three of a Kind",
"Two Pair",
"One Pair",
"High Card"
#define CLUB 0x8000 //梅花
#define DIAMOND 0x4000 //方块
#define HEART
0x2000 //红桃
#define SPADE
0x1000 //黑桃
//不分花色的牌序号(2,3,4....10,J,Q,K,A)
#define Deuce 0
#define Trey 1
#define Four 2
#define Five 3
#define Six 4
#define Seven 5
#define Eight 6
#define Nine 7
#define Ten 8
#define Jack 9
#define Queen 10
#define King 11
#define Ace 12
//perform a binary search on a pre-sorted array//perform a binary search on a pre-sorted array
//执行二进制搜索一个预排序的数组
int Findit( int key )
int low = 0, high = 4887, mid;
while ( low &= high )
mid = (high+low) && 1;
// divide by two
if ( key & products[mid] )
high = mid - 1;
else if ( key & products[mid] )
low = mid + 1;
return( mid );
fprintf( stderr, "ERROR: key = %d\n", key );
return( -1 );
//通过index(0~51)获取data
int GetCardDataByIndex(int icard_index)
int icard_data = 0;
int suit = 0;
switch(icard_index / 13)
suit = DIAMOND;//方块
case 1://红桃
suit = HEART;
case 2://黑桃
suit = SPADE;
case 3://梅花
suit = CLUB;
int rank = icard_index % 13;
icard_data = primes[rank] | (rank && 8) | suit | (1 && (16+rank));
return icard_data;
//通过No(0~12)suit(0~3)获取Data
int GetCardDataByNoAndSuit(int icard_no , int isuit)
int icard_data = 0;
int suit = DIAMOND;
if (icard_no &= 0 && icard_no &=
12 && isuit &= 0 && isuit &= 3)
switch(isuit)
suit = CLUB;
suit = DIAMOND;
suit = HEART;
suit = SPADE;
icard_data = primes[icard_no] | (icard_no && 8) | suit | (1 && (16 + icard_no));
return icard_data;
//////////////////////////////////////////////////////////////////////////////////
//好牌返回true,坏牌返回false
short TwoIsGoodCard(int icard_data[2])
short scards_value = 1;
int irank0 = RANK(icard_data[0]);
int irank1 = RANK(icard_data[1]);
int idiff_spot = irank0 - irank1;
if(idiff_spot == 0)//对子
if(irank0 &= Ten)
scards_value = 1;
scards_value = 2;
if(((icard_data[0] && 12) &0xF) & ((icard_data[1] && 12) &0xF))
if(irank0 &= Queen || irank1 &= Queen)
scards_value = 2;
scards_value = 3;
if(irank0 &= Queen || irank1 &= Queen)
scards_value = 3;
scards_value = 4;
return scards_value;
+--------+--------+--------+--------+
|xxxbbbbb|bbbbbbbb|cdhsrrrr|xxpppppp|
+--------+--------+--------+--------+
p = prime number of rank (deuce=2,trey=3,four=5,five=7,...,ace=41)
r = rank of card (deuce=0,trey=1,four=2,five=3,...,ace=12)牌的序号2=0,3=1,4=2....j = 9 , Q = 10 , K = 11 , A = 12
cdhs = suit of card花色
b = bit turned on depending on rank of card
//初始化整付牌,按花色和序号整理成完全顺序
void InitDeck( int *deck )
int i, j, n = 0, suit = 0x8000;
for ( i = 0; i & 4; i++, suit &&= 1 )
for ( j = 0; j & 13; j++, n++ )
deck[n] = primes[j] | (j && 8) | suit | (1 && (16+j));
This routine will search a deck for a specific card
(specified by rank/suit), and return the INDEX giving
the position of the found card.
If it is not found,
then it returns -1
//从一整付牌deck中找到花色是suit的序号是rank的索引
int FindCard( int rank, int suit, int *deck )
for ( i = 0; i & 52; i++ )
c = deck[i];
if ( (c & suit)
(RANK(c) == rank) )
return( i );
return( -1 );
//通过牌的值,返回他的是牌号index0~51
int GetCardIndex( int icard_value)
int irank , isuit;
int icard_index = 0xFF;
//牌号index0~51
irank = (icard_value && 8) & 0xF; //序号
if ( icard_value & CLUB )
isuit = 39;
else if ( icard_value & DIAMOND ) //方块
isuit = 0;
else if ( icard_value & HEART )
isuit = 13;
isuit = 26;
icard_index = irank + isuit;
return icard_index;
void GetHandCardIndex(int ihand_card[] , int icard_index[] , int icard_count)
for (int i = 0 ; i & icard_count ; i++)
icard_index[i] = GetCardIndex(ihand_card[i]);
//通过牌的值,返回他的是什么牌
void PrintHand( int *hand, int n )
const char *psuit;
static const char *rank = "TJQKA";
static const char *club = "CLUB";
static const char *diamond = "DIAMOND";
static const char *heart = "HEART";
static const char *spade = "SPADE";
for ( i = 0; i & n; i++ )
r = (*hand && 8) & 0xF;
if ( *hand & CLUB )//梅花
psuit = club;
else if ( *hand & DIAMOND )//方块
psuit = diamond;
else if ( *hand & HEART )//红桃
psuit = heart;
psuit = spade;
printf( "%s%c ", psuit , rank[r]);
//通过5张牌的值返回他的牌型
int HandRank( short val )
if (val & 6185) return(HIGH_CARD);
// 1277 high card
if (val & 3325) return(ONE_PAIR);
// 2860 one pair
if (val & 2467) return(TWO_PAIR);
858 two pair
if (val & 1609) return(THREE_OF_A_KIND);
858 three-kind
if (val & 1599) return(STRAIGHT);
10 straights
if (val & 322)
return(FLUSH);
// 1277 flushes
if (val & 166)
return(FULL_HOUSE);
156 full house
if (val & 10)
return(FOUR_OF_A_KIND);
156 four-kind
if (val & 1)
return(STRAIGHT_FLUSH);
9 straight-flushes
return (ROYAL_FLUSH);
1 royal-flush
//获取五张牌的值
short EvalFiveCards( int c1, int c2, int c3, int c4, int c5 )
q = (c1|c2|c3|c4|c5) && 16;
//check for Flushes and StraightFlushes
//检查同花和同花顺
if ( c1 & c2 & c3 & c4 & c5 & 0xF000 )
return( flushes[q] );
// check for Straights and HighCard hands
//检查顺子和高牌
s = unique5[q];
return ( s );
/* let's do it the hard way
q = (c1&0xFF) * (c2&0xFF) * (c3&0xFF) * (c4&0xFF) * (c5&0xFF);
q = Findit( q );
return( values[q] );
//获取五张牌的值
short EvalFiveCards( int *hand )
int c1, c2, c3, c4, c5;
c1 = *hand++;
c2 = *hand++;
c3 = *hand++;
c4 = *hand++;
c5 = *hand;
return( EvalFiveCards(c1,c2,c3,c4,c5) );
24 条评论分享收藏感谢收起

我要回帖

更多关于 c语言 扑克牌 梅花 的文章

 

随机推荐