language: Haskell (ghc-6.8.2)
date: 166 days 4 hours ago
link:
visibility: public
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
import Data.Array
import Data.Array.IO
 
 
--start of prime
 
loopB :: Int -> Int -> Int ->  IOArray Int Int -> IO ( IOArray Int Int )
loopB st a b arr
        | st > b = return arr
        | otherwise = 
            do
                writeArray arr st 0 
                loopB ( st + a ) a b arr 
 
 
loopA :: Int -> Int ->  IOArray Int Int -> IO ( IOArray Int Int ) 
loopA a b arr 
        | a ^ 2 > b = return arr
        | otherwise = 
           do
                t <- readArray arr a 
                arr' <- if t /= 0 then loopB ( a ^ 2 ) a  b arr else return arr 
                loopA ( a + 1 ) b arr' 
 
printerA :: Int -> Int -> IOArray Int Int -> IO ( )
printerA a b arr 
        | a > b = return ()
        | otherwise = do 
                t <- readArray arr a 
                print ( a , if t == 0 then "composite" else "prime" ) 
                printerA ( a + 1 ) b arr 
 
--end of prime generation
--start of euler phi function
 
helpEuler :: Int -> Int -> IOArray Int Int -> IO ( IOArray Int Int ) 
helpEuler a b phi 
        | a > b = return phi
        | otherwise = 
           do 
                writeArray phi a a 
                helpEuler ( a + 1 ) b phi
 
loopInner :: Int -> Int -> Int -> IOArray Int Int -> IO ( IOArray Int Int ) 
loopInner st a b phi 
        | st > b = return phi
        | otherwise = 
           do 
                t <- readArray phi st 
                let k = div ( t * ( a - 1 ) ) a 
                writeArray phi st k 
                loopInner ( st + a ) a b phi
 
loopOuter :: Int -> Int -> IOArray Int Int -> IO ( IOArray Int Int ) 
loopOuter a b phi
        | a > b = return phi
        | otherwise = 
           do 
             t <- readArray phi a 
             phi' <- if t == a then loopInner (  2 * a ) a b phi else return phi
             loopOuter ( a + 1 ) b phi' 
 
modifyValue :: Int -> Int -> IOArray Int Int -> IO ( IOArray Int Int ) 
modifyValue a b phi 
        | a > b = return phi
        | otherwise = 
           do 
              t <- readArray phi a 
              if t == a then writeArray phi a ( a - 1 ) else writeArray phi a t 
              modifyValue ( succ a ) b phi 
 
 
printerB :: Int -> Int -> IOArray Int Int -> IO (  )
printerB a b phi
       | a > b = return ()
       | otherwise = 
           do 
                t <- readArray phi a 
                print ( a , t ) 
                printerB ( a + 1 ) b phi
 
--end of euler phi function
 
 
main = do
         
        arr <- newArray ( 2 , 1000 ) 1 :: IO ( IOArray Int Int ) 
        arr' <- loopA  2 1000 arr
        printerA 2 1000 arr'
        
        
        phi <- newArray ( 1 , 100 ) 1 :: IO ( IOArray Int Int ) 
        tmp <- helpEuler  2 100 phi
        phi' <- loopOuter 2 100 tmp     
        phi'' <- modifyValue 2 100 phi'
        printerB 1 100 phi''
        
        {--
        a <- readArray arr 1
        writeArray arr 1 64 
        b <- readArray arr 1
        print ( a , b ) 
        --}
[1 of 1] Compiling Main             ( prog.hs, prog.o )
Linking prog ...
  • upload with new input
  • result: Success     time: 0s    memory: 3628 kB     returned value: 0

    (2,"prime")
    (3,"prime")
    (4,"composite")
    (5,"prime")
    (6,"composite")
    (7,"prime")
    (8,"composite")
    (9,"composite")
    (10,"composite")
    (11,"prime")
    (12,"composite")
    (13,"prime")
    (14,"composite")
    (15,"composite")
    (16,"composite")
    (17,"prime")
    (18,"composite")
    (19,"prime")
    (20,"composite")
    (21,"composite")
    (22,"composite")
    (23,"prime")
    (24,"composite")
    (25,"composite")
    (26,"composite")
    (27,"composite")
    (28,"composite")
    (29,"prime")
    (30,"composite")
    (31,"prime")
    (32,"composite")
    (33,"composite")
    (34,"composite")
    (35,"composite")
    (36,"composite")
    (37,"prime")
    (38,"composite")
    (39,"composite")
    (40,"composite")
    (41,"prime")
    (42,"composite")
    (43,"prime")
    (44,"composite")
    (45,"composite")
    (46,"composite")
    (47,"prime")
    (48,"composite")
    (49,"composite")
    (50,"composite")
    (51,"composite")
    (52,"composite")
    (53,"prime")
    (54,"composite")
    (55,"composite")
    (56,"composite")
    (57,"composite")
    (58,"composite")
    (59,"prime")
    (60,"composite")
    (61,"prime")
    (62,"composite")
    (63,"composite")
    (64,"composite")
    (65,"composite")
    (66,"composite")
    (67,"prime")
    (68,"composite")
    (69,"composite")
    (70,"composite")
    (71,"prime")
    (72,"composite")
    (73,"prime")
    (74,"composite")
    (75,"composite")
    (76,"composite")
    (77,"composite")
    (78,"composite")
    (79,"prime")
    (80,"composite")
    (81,"composite")
    (82,"composite")
    (83,"prime")
    (84,"composite")
    (85,"composite")
    (86,"composite")
    (87,"composite")
    (88,"composite")
    (89,"prime")
    (90,"composite")
    (91,"composite")
    (92,"composite")
    (93,"composite")
    (94,"composite")
    (95,"composite")
    (96,"composite")
    (97,"prime")
    (98,"composite")
    (99,"composite")
    (100,"composite")
    (101,"prime")
    (102,"composite")
    (103,"prime")
    (104,"composite")
    (105,"composite")
    (106,"composite")
    (107,"prime")
    (108,"composite")
    (109,"prime")
    (110,"composite")
    (111,"composite")
    (112,"composite")
    (113,"prime")
    (114,"composite")
    (115,"composite")
    (116,"composite")
    (117,"composite")
    (118,"composite")
    (119,"composite")
    (120,"composite")
    (121,"composite")
    (122,"composite")
    (123,"composite")
    (124,"composite")
    (125,"composite")
    (126,"composite")
    (127,"prime")
    (128,"composite")
    (129,"composite")
    (130,"composite")
    (131,"prime")
    (132,"composite")
    (133,"composite")
    (134,"composite")
    (135,"composite")
    (136,"composite")
    (137,"prime")
    (138,"composite")
    (139,"prime")
    (140,"composite")
    (141,"composite")
    (142,"composite")
    (143,"composite")
    (144,"composite")
    (145,"composite")
    (146,"composite")
    (147,"composite")
    (148,"composite")
    (149,"prime")
    (150,"composite")
    (151,"prime")
    (152,"composite")
    (153,"composite")
    (154,"composite")
    (155,"composite")
    (156,"composite")
    (157,"prime")
    (158,"composite")
    (159,"composite")
    (160,"composite")
    (161,"composite")
    (162,"composite")
    (163,"prime")
    (164,"composite")
    (165,"composite")
    (166,"composite")
    (167,"prime")
    (168,"composite")
    (169,"composite")
    (170,"composite")
    (171,"composite")
    (172,"composite")
    (173,"prime")
    (174,"composite")
    (175,"composite")
    (176,"composite")
    (177,"composite")
    (178,"composite")
    (179,"prime")
    (180,"composite")
    (181,"prime")
    (182,"composite")
    (183,"composite")
    (184,"composite")
    (185,"composite")
    (186,"composite")
    (187,"composite")
    (188,"composite")
    (189,"composite")
    (190,"composite")
    (191,"prime")
    (192,"composite")
    (193,"prime")
    (194,"composite")
    (195,"composite")
    (196,"composite")
    (197,"prime")
    (198,"composite")
    (199,"prime")
    (200,"composite")
    (201,"composite")
    (202,"composite")
    (203,"composite")
    (204,"composite")
    (205,"composite")
    (206,"composite")
    (207,"composite")
    (208,"composite")
    (209,"composite")
    (210,"composite")
    (211,"prime")
    (212,"composite")
    (213,"composite")
    (214,"composite")
    (215,"composite")
    (216,"composite")
    (217,"composite")
    (218,"composite")
    (219,"composite")
    (220,"composite")
    (221,"composite")
    (222,"composite")
    (223,"prime")
    (224,"composite")
    (225,"composite")
    (226,"composite")
    (227,"prime")
    (228,"composite")
    (229,"prime")
    (230,"composite")
    (231,"composite")
    (232,"composite")
    (233,"prime")
    (234,"composite")
    (235,"composite")
    (236,"composite")
    (237,"composite")
    (238,"composite")
    (239,"prime")
    (240,"composite")
    (241,"prime")
    (242,"composite")
    (243,"composite")
    (244,"composite")
    (245,"composite")
    (246,"composite")
    (247,"composite")
    (248,"composite")
    (249,"composite")
    (250,"composite")
    (251,"prime")
    (252,"composite")
    (253,"composite")
    (254,"composite")
    (255,"composite")
    (256,"composite")
    (257,"prime")
    (258,"composite")
    (259,"composite")
    (260,"composite")
    (261,"composite")
    (262,"composite")
    (263,"prime")
    (264,"composite")
    (265,"composite")
    (266,"composite")
    (267,"composite")
    (268,"composite")
    (269,"prime")
    (270,"composite")
    (271,"prime")
    (272,"composite")
    (273,"composite")
    (274,"composite")
    (275,"composite")
    (276,"composite")
    (277,"prime")
    (278,"composite")
    (279,"composite")
    (280,"composite")
    (281,"prime")
    (282,"composite")
    (283,"prime")
    (284,"composite")
    (285,"composite")
    (286,"composite")
    (287,"composite")
    (288,"composite")
    (289,"composite")
    (290,"composite")
    (291,"composite")
    (292,"composite")
    (293,"prime")
    (294,"composite")
    (295,"composite")
    (296,"composite")
    (297,"composite")
    (298,"composite")
    (299,"composite")
    (300,"composite")
    (301,"composite")
    (302,"composite")
    (303,"composite")
    (304,"composite")
    (305,"composite")
    (306,"composite")
    (307,"prime")
    (308,"composite")
    (309,"composite")
    (310,"composite")
    (311,"prime")
    (312,"composite")
    (313,"prime")
    (314,"composite")
    (315,"composite")
    (316,"composite")
    (317,"prime")
    (318,"composite")
    (319,"composite")
    (320,"composite")
    (321,"composite")
    (322,"composite")
    (323,"composite")
    (324,"composite")
    (325,"composite")
    (326,"composite")
    (327,"composite")
    (328,"composite")
    (329,"composite")
    (330,"composite")
    (331,"prime")
    (332,"composite")
    (333,"composite")
    (334,"composite")
    (335,"composite")
    (336,"composite")
    (337,"prime")
    (338,"composite")
    (339,"composite")
    (340,"composite")
    (341,"composite")
    (342,"composite")
    (343,"composite")
    (344,"composite")
    (345,"composite")
    (346,"composite")
    (347,"prime")
    (348,"composite")
    (349,"prime")
    (350,"composite")
    (351,"composite")
    (352,"composite")
    (353,"prime")
    (354,"composite")
    (355,"composite")
    (356,"composite")
    (357,"composite")
    (358,"composite")
    (359,"prime")
    (360,"composite")
    (361,"composite")
    (362,"composite")
    (363,"composite")
    (364,"composite")
    (365,"composite")
    (366,"composite")
    (367,"prime")
    (368,"composite")
    (369,"composite")
    (370,"composite")
    (371,"composite")
    (372,"composite")
    (373,"prime")
    (374,"composite")
    (375,"composite")
    (376,"composite")
    (377,"composite")
    (378,"composite")
    (379,"prime")
    (380,"composite")
    (381,"composite")
    (382,"composite")
    (383,"prime")
    (384,"composite")
    (385,"composite")
    (386,"composite")
    (387,"composite")
    (388,"composite")
    (389,"prime")
    (390,"composite")
    (391,"composite")
    (392,"composite")
    (393,"composite")
    (394,"composite")
    (395,"composite")
    (396,"composite")
    (397,"prime")
    (398,"composite")
    (399,"composite")
    (400,"composite")
    (401,"prime")
    (402,"composite")
    (403,"composite")
    (404,"composite")
    (405,"composite")
    (406,"composite")
    (407,"composite")
    (408,"composite")
    (409,"prime")
    (410,"composite")
    (411,"composite")
    (412,"composite")
    (413,"composite")
    (414,"composite")
    (415,"composite")
    (416,"composite")
    (417,"composite")
    (418,"composite")
    (419,"prime")
    (420,"composite")
    (421,"prime")
    (422,"composite")
    (423,"composite")
    (424,"composite")
    (425,"composite")
    (426,"composite")
    (427,"composite")
    (428,"composite")
    (429,"composite")
    (430,"composite")
    (431,"prime")
    (432,"composite")
    (433,"prime")
    (434,"composite")
    (435,"composite")
    (436,"composite")
    (437,"composite")
    (438,"composite")
    (439,"prime")
    (440,"composite")
    (441,"composite")
    (442,"composite")
    (443,"prime")
    (444,"composite")
    (445,"composite")
    (446,"composite")
    (447,"composite")
    (448,"composite")
    (449,"prime")
    (450,"composite")
    (451,"composite")
    (452,"composite")
    (453,"composite")
    (454,"composite")
    (455,"composite")
    (456,"composite")
    (457,"prime")
    (458,"composite")
    (459,"composite")
    (460,"composite")
    (461,"prime")
    (462,"composite")
    (463,"prime")
    (464,"composite")
    (465,"composite")
    (466,"composite")
    (467,"prime")
    (468,"composite")
    (469,"composite")
    (470,"composite")
    (471,"composite")
    (472,"composite")
    (473,"composite")
    (474,"composite")
    (475,"composite")
    (476,"composite")
    (477,"composite")
    (478,"composite")
    (479,"prime")
    (480,"composite")
    (481,"composite")
    (482,"composite")
    (483,"composite")
    (484,"composite")
    (485,"composite")
    (486,"composite")
    (487,"prime")
    (488,"composite")
    (489,"composite")
    (490,"composite")
    (491,"prime")
    (492,"composite")
    (493,"composite")
    (494,"composite")
    (495,"composite")
    (496,"composite")
    (497,"composite")
    (498,"composite")
    (499,"prime")
    (500,"composite")
    (501,"composite")
    (502,"composite")
    (503,"prime")
    (504,"composite")
    (505,"composite")
    (506,"composite")
    (507,"composite")
    (508,"composite")
    (509,"prime")
    (510,"composite")
    (511,"composite")
    (512,"composite")
    (513,"composite")
    (514,"composite")
    (515,"composite")
    (516,"composite")
    (517,"composite")
    (518,"composite")
    (519,"composite")
    (520,"composite")
    (521,"prime")
    (522,"composite")
    (523,"prime")
    (524,"composite")
    (525,"composite")
    (526,"composite")
    (527,"composite")
    (528,"composite")
    (529,"composite")
    (530,"composite")
    (531,"composite")
    (532,"composite")
    (533,"composite")
    (534,"composite")
    (535,"composite")
    (536,"composite")
    (537,"composite")
    (538,"composite")
    (539,"composite")
    (540,"composite")
    (541,"prime")
    (542,"composite")
    (543,"composite")
    (544,"composite")
    (545,"composite")
    (546,"composite")
    (547,"prime")
    (548,"composite")
    (549,"composite")
    (550,"composite")
    (551,"composite")
    (552,"composite")
    (553,"composite")
    (554,"composite")
    (555,"composite")
    (556,"composite")
    (557,"prime")
    (558,"composite")
    (559,"composite")
    (560,"composite")
    (561,"composite")
    (562,"composite")
    (563,"prime")
    (564,"composite")
    (565,"composite")
    (566,"composite")
    (567,"composite")
    (568,"composite")
    (569,"prime")
    (570,"composite")
    (571,"prime")
    (572,"composite")
    (573,"composite")
    (574,"composite")
    (575,"composite")
    (576,"composite")
    (577,"prime")
    (578,"composite")
    (579,"composite")
    (580,"composite")
    (581,"composite")
    (582,"composite")
    (583,"composite")
    (584,"composite")
    (585,"composite")
    (586,"composite")
    (587,"prime")
    (588,"composite")
    (589,"composite")
    (590,"composite")
    (591,"composite")
    (592,"composite")
    (593,"prime")
    (594,"composite")
    (595,"composite")
    (596,"composite")
    (597,"composite")
    (598,"composite")
    (599,"prime")
    (600,"composite")
    (601,"prime")
    (602,"composite")
    (603,"composite")
    (604,"composite")
    (605,"composite")
    (606,"composite")
    (607,"prime")
    (608,"composite")
    (609,"composite")
    (610,"composite")
    (611,"composite")
    (612,"composite")
    (613,"prime")
    (614,"composite")
    (615,"composite")
    (616,"composite")
    (617,"prime")
    (618,"composite")
    (619,"prime")
    (620,"composite")
    (621,"composite")
    (622,"composite")
    (623,"composite")
    (624,"composite")
    (625,"composite")
    (626,"composite")
    (627,"composite")
    (628,"composite")
    (629,"composite")
    (630,"composite")
    (631,"prime")
    (632,"composite")
    (633,"composite")
    (634,"composite")
    (635,"composite")
    (636,"composite")
    (637,"composite")
    (638,"composite")
    (639,"composite")
    (640,"composite")
    (641,"prime")
    (642,"composite")
    (643,"prime")
    (644,"composite")
    (645,"composite")
    (646,"composite")
    (647,"prime")
    (648,"composite")
    (649,"composite")
    (650,"composite")
    (651,"composite")
    (652,"composite")
    (653,"prime")
    (654,"composite")
    (655,"composite")
    (656,"composite")
    (657,"composite")
    (658,"composite")
    (659,"prime")
    (660,"composite")
    (661,"prime")
    (662,"composite")
    (663,"composite")
    (664,"composite")
    (665,"composite")
    (666,"composite")
    (667,"composite")
    (668,"composite")
    (669,"composite")
    (670,"composite")
    (671,"composite")
    (672,"composite")
    (673,"prime")
    (674,"composite")
    (675,"composite")
    (676,"composite")
    (677,"prime")
    (678,"composite")
    (679,"composite")
    (680,"composite")
    (681,"composite")
    (682,"composite")
    (683,"prime")
    (684,"composite")
    (685,"composite")
    (686,"composite")
    (687,"composite")
    (688,"composite")
    (689,"composite")
    (690,"composite")
    (691,"prime")
    (692,"composite")
    (693,"composite")
    (694,"composite")
    (695,"composite")
    (696,"composite")
    (697,"composite")
    (698,"composite")
    (699,"composite")
    (700,"composite")
    (701,"prime")
    (702,"composite")
    (703,"composite")
    (704,"composite")
    (705,"composite")
    (706,"composite")
    (707,"composite")
    (708,"composite")
    (709,"prime")
    (710,"composite")
    (711,"composite")
    (712,"composite")
    (713,"composite")
    (714,"composite")
    (715,"composite")
    (716,"composite")
    (717,"composite")
    (718,"composite")
    (719,"prime")
    (720,"composite")
    (721,"composite")
    (722,"composite")
    (723,"composite")
    (724,"composite")
    (725,"composite")
    (726,"composite")
    (727,"prime")
    (728,"composite")
    (729,"composite")
    (730,"composite")
    (731,"composite")
    (732,"composite")
    (733,"prime")
    (734,"composite")
    (735,"composite")
    (736,"composite")
    (737,"composite")
    (738,"composite")
    (739,"prime")
    (740,"composite")
    (741,"composite")
    (742,"composite")
    (743,"prime")
    (744,"composite")
    (745,"composite")
    (746,"composite")
    (747,"composite")
    (748,"composite")
    (749,"composite")
    (750,"composite")
    (751,"prime")
    (752,"composite")
    (753,"composite")
    (754,"composite")
    (755,"composite")
    (756,"composite")
    (757,"prime")
    (758,"composite")
    (759,"composite")
    (760,"composite")
    (761,"prime")
    (762,"composite")
    (763,"composite")
    (764,"composite")
    (765,"composite")
    (766,"composite")
    (767,"composite")
    (768,"composite")
    (769,"prime")
    (770,"composite")
    (771,"composite")
    (772,"composite")
    (773,"prime")
    (774,"composite")
    (775,"composite")
    (776,"composite")
    (777,"composite")
    (778,"composite")
    (779,"composite")
    (780,"composite")
    (781,"composite")
    (782,"composite")
    (783,"composite")
    (784,"composite")
    (785,"composite")
    (786,"composite")
    (787,"prime")
    (788,"composite")
    (789,"composite")
    (790,"composite")
    (791,"composite")
    (792,"composite")
    (793,"composite")
    (794,"composite")
    (795,"composite")
    (796,"composite")
    (797,"prime")
    (798,"composite")
    (799,"composite")
    (800,"composite")
    (801,"composite")
    (802,"composite")
    (803,"composite")
    (804,"composite")
    (805,"composite")
    (806,"composite")
    (807,"composite")
    (808,"composite")
    (809,"prime")
    (810,"composite")
    (811,"prime")
    (812,"composite")
    (813,"composite")
    (814,"composite")
    (815,"composite")
    (816,"composite")
    (817,"composite")
    (818,"composite")
    (819,"composite")
    (820,"composite")
    (821,"prime")
    (822,"composite")
    (823,"prime")
    (824,"composite")
    (825,"composite")
    (826,"composite")
    (827,"prime")
    (828,"composite")
    (829,"prime")
    (830,"composite")
    (831,"composite")
    (832,"composite")
    (833,"composite")
    (834,"composite")
    (835,"composite")
    (836,"composite")
    (837,"composite")
    (838,"composite")
    (839,"prime")
    (840,"composite")
    (841,"composite")
    (842,"composite")
    (843,"composite")
    (844,"composite")
    (845,"composite")
    (846,"composite")
    (847,"composite")
    (848,"composite")
    (849,"composite")
    (850,"composite")
    (851,"composite")
    (852,"composite")
    (853,"prime")
    (854,"composite")
    (855,"composite")
    (856,"composite")
    (857,"prime")
    (858,"composite")
    (859,"prime")
    (860,"composite")
    (861,"composite")
    (862,"composite")
    (863,"prime")
    (864,"composite")
    (865,"composite")
    (866,"composite")
    (867,"composite")
    (868,"composite")
    (869,"composite")
    (870,"composite")
    (871,"composite")
    (872,"composite")
    (873,"composite")
    (874,"composite")
    (875,"composite")
    (876,"composite")
    (877,"prime")
    (878,"composite")
    (879,"composite")
    (880,"composite")
    (881,"prime")
    (882,"composite")
    (883,"prime")
    (884,"composite")
    (885,"composite")
    (886,"composite")
    (887,"prime")
    (888,"composite")
    (889,"composite")
    (890,"composite")
    (891,"composite")
    (892,"composite")
    (893,"composite")
    (894,"composite")
    (895,"composite")
    (896,"composite")
    (897,"composite")
    (898,"composite")
    (899,"composite")
    (900,"composite")
    (901,"composite")
    (902,"composite")
    (903,"composite")
    (904,"composite")
    (905,"composite")
    (906,"composite")
    (907,"prime")
    (908,"composite")
    (909,"composite")
    (910,"composite")
    (911,"prime")
    (912,"composite")
    (913,"composite")
    (914,"composite")
    (915,"composite")
    (916,"composite")
    (917,"composite")
    (918,"composite")
    (919,"prime")
    (920,"composite")
    (921,"composite")
    (922,"composite")
    (923,"composite")
    (924,"composite")
    (925,"composite")
    (926,"composite")
    (927,"composite")
    (928,"composite")
    (929,"prime")
    (930,"composite")
    (931,"composite")
    (932,"composite")
    (933,"composite")
    (934,"composite")
    (935,"composite")
    (936,"composite")
    (937,"prime")
    (938,"composite")
    (939,"composite")
    (940,"composite")
    (941,"prime")
    (942,"composite")
    (943,"composite")
    (944,"composite")
    (945,"composite")
    (946,"composite")
    (947,"prime")
    (948,"composite")
    (949,"composite")
    (950,"composite")
    (951,"composite")
    (952,"composite")
    (953,"prime")
    (954,"composite")
    (955,"composite")
    (956,"composite")
    (957,"composite")
    (958,"composite")
    (959,"composite")
    (960,"composite")
    (961,"composite")
    (962,"composite")
    (963,"composite")
    (964,"composite")
    (965,"composite")
    (966,"composite")
    (967,"prime")
    (968,"composite")
    (969,"composite")
    (970,"composite")
    (971,"prime")
    (972,"composite")
    (973,"composite")
    (974,"composite")
    (975,"composite")
    (976,"composite")
    (977,"prime")
    (978,"composite")
    (979,"composite")
    (980,"composite")
    (981,"composite")
    (982,"composite")
    (983,"prime")
    (984,"composite")
    (985,"composite")
    (986,"composite")
    (987,"composite")
    (988,"composite")
    (989,"composite")
    (990,"composite")
    (991,"prime")
    (992,"composite")
    (993,"composite")
    (994,"composite")
    (995,"composite")
    (996,"composite")
    (997,"prime")
    (998,"composite")
    (999,"composite")
    (1000,"composite")
    (1,1)
    (2,1)
    (3,2)
    (4,2)
    (5,4)
    (6,2)
    (7,6)
    (8,4)
    (9,6)
    (10,4)
    (11,10)
    (12,4)
    (13,12)
    (14,6)
    (15,8)
    (16,8)
    (17,16)
    (18,6)
    (19,18)
    (20,8)
    (21,12)
    (22,10)
    (23,22)
    (24,8)
    (25,20)
    (26,12)
    (27,18)
    (28,12)
    (29,28)
    (30,8)
    (31,30)
    (32,16)
    (33,20)
    (34,16)
    (35,24)
    (36,12)
    (37,36)
    (38,18)
    (39,24)
    (40,16)
    (41,40)
    (42,12)
    (43,42)
    (44,20)
    (45,24)
    (46,22)
    (47,46)
    (48,16)
    (49,42)
    (50,20)
    (51,32)
    (52,24)
    (53,52)
    (54,18)
    (55,40)
    (56,24)
    (57,36)
    (58,28)
    (59,58)
    (60,16)
    (61,60)
    (62,30)
    (63,36)
    (64,32)
    (65,48)
    (66,20)
    (67,66)
    (68,32)
    (69,44)
    (70,24)
    (71,70)
    (72,24)
    (73,72)
    (74,36)
    (75,40)
    (76,36)
    (77,60)
    (78,24)
    (79,78)
    (80,32)
    (81,54)
    (82,40)
    (83,82)
    (84,24)
    (85,64)
    (86,42)
    (87,56)
    (88,40)
    (89,88)
    (90,24)
    (91,72)
    (92,44)
    (93,60)
    (94,46)
    (95,72)
    (96,32)
    (97,96)
    (98,42)
    (99,60)
    (100,40)