スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

F#雑記 Lucky numbers

  anarchy golf の問題より 
  
 自然数を与えるとそれより小さい幸運数を返す関数を書いてみました。 
  
 幸運数についてはこちらをご覧ください。 
  
 ではコードです。 
  
 > let rec luckyNumsSub (nth:int) (lst:list<int>) = 
    let nthNum = List.nth lst (nth - 1)  
    if  nthNum > List.length lst then 
         lst 
    else 
        let nextLst = 
            lst 
              |>List.mapi (fun i ele -> (i + 1,ele)) 
              |>List.filter (fun (i,_) -> i % nthNum <> 0) 
              |>List.map (fun (_,ele) -> ele) 
        luckyNumsSub (nth + 1) nextLst 
 
let luckyNums (maxN:int) = 
    luckyNumsSub 2 [1 .. 2 .. maxN];; 
 
val luckyNumsSub : int -> int list -> int list 
val luckyNums : int -> int list 
 
(実行例) 
> luckyNums 30;; 
val it : int list = [1; 3; 7; 9; 13; 15; 21; 25] 
 
では10000より小さい幸運数をすべて表示してみます。 
 
> List.iteri (fun i lucky ->if i % 20 = 0 then printfn ""  
                          printf "%d: " lucky) (luckyNums 10000) 
;; 
 
1: 3: 7: 9: 13: 15: 21: 25: 31: 33: 37: 43: 49: 51: 63: 67: 69: 73: 75: 79:  
87: 93: 99: 105: 111: 115: 127: 129: 133: 135: 141: 151: 159: 163: 169: 171: 189: 193: 195: 201:  
205: 211: 219: 223: 231: 235: 237: 241: 259: 261: 267: 273: 283: 285: 289: 297: 303: 307: 319: 321:  
327: 331: 339: 349: 357: 361: 367: 385: 391: 393: 399: 409: 415: 421: 427: 429: 433: 451: 463: 475:  
477: 483: 487: 489: 495: 511: 517: 519: 529: 535: 537: 541: 553: 559: 577: 579: 583: 591: 601: 613:  
615: 619: 621: 631: 639: 643: 645: 651: 655: 673: 679: 685: 693: 699: 717: 723: 727: 729: 735: 739:  
741: 745: 769: 777: 781: 787: 801: 805: 819: 823: 831: 841: 855: 867: 873: 883: 885: 895: 897: 903:  
925: 927: 931: 933: 937: 957: 961: 975: 979: 981: 991: 993: 997: 1009: 1011: 1021: 1023: 1029: 1039: 1041:  
1053: 1057: 1087: 1093: 1095: 1101: 1105: 1107: 1117: 1123: 1147: 1155: 1167: 1179: 1183: 1189: 1197: 1201: 1203: 1209:  
1219: 1231: 1233: 1245: 1249: 1251: 1261: 1263: 1275: 1281: 1285: 1291: 1303: 1309: 1323: 1329: 1339: 1357: 1365: 1369:  
1387: 1389: 1395: 1401: 1417: 1419: 1435: 1441: 1455: 1459: 1471: 1473: 1485: 1491: 1495: 1497: 1501: 1503: 1519: 1533:  
1543: 1545: 1563: 1567: 1575: 1579: 1585: 1587: 1597: 1599: 1611: 1639: 1641: 1645: 1659: 1663: 1675: 1693: 1701: 1705:  
1711: 1723: 1731: 1737: 1749: 1765: 1767: 1771: 1773: 1777: 1797: 1801: 1809: 1819: 1827: 1831: 1833: 1839: 1857: 1869:  
1879: 1893: 1899: 1915: 1921: 1923: 1933: 1941: 1945: 1959: 1963: 1965: 1977: 1983: 1987: 1995: 2001: 2019: 2023: 2031:  
2053: 2059: 2065: 2067: 2079: 2083: 2085: 2095: 2113: 2115: 2121: 2125: 2127: 2133: 2163: 2173: 2187: 2209: 2211: 2215:  
2217: 2221: 2239: 2251: 2253: 2257: 2271: 2277: 2281: 2283: 2301: 2311: 2317: 2323: 2335: 2343: 2355: 2365: 2379: 2395:  
2403: 2407: 2409: 2415: 2419: 2427: 2439: 2445: 2461: 2467: 2473: 2479: 2491: 2493: 2505: 2511: 2523: 2527: 2545: 2557:  
2563: 2571: 2575: 2587: 2589: 2593: 2599: 2607: 2625: 2635: 2647: 2649: 2653: 2661: 2667: 2671: 2689: 2697: 2715: 2725:  
2755: 2763: 2773: 2781: 2785: 2787: 2797: 2815: 2817: 2821: 2823: 2827: 2835: 2841: 2845: 2851: 2877: 2887: 2899: 2901:  
2905: 2913: 2923: 2943: 2953: 2961: 2971: 2973: 2977: 2983: 3003: 3007: 3027: 3031: 3037: 3039: 3049: 3055: 3073: 3075:  
3091: 3097: 3099: 3109: 3111: 3121: 3123: 3133: 3153: 3163: 3171: 3175: 3183: 3187: 3199: 3213: 3223: 3229: 3235: 3243:  
3259: 3261: 3289: 3297: 3301: 3307: 3313: 3325: 3339: 3351: 3355: 3363: 3381: 3403: 3405: 3409: 3411: 3427: 3433: 3439:  
3451: 3453: 3465: 3477: 3481: 3487: 3489: 3495: 3499: 3507: 3559: 3565: 3571: 3579: 3595: 3597: 3603: 3607: 3613: 3621:  
3625: 3633: 3655: 3661: 3663: 3669: 3675: 3685: 3687: 3697: 3709: 3717: 3721: 3727: 3747: 3753: 3763: 3771: 3781: 3789:  
3793: 3795: 3811: 3843: 3847: 3849: 3865: 3873: 3879: 3889: 3891: 3897: 3909: 3915: 3931: 3943: 3951: 3955: 3969: 3975:  
3981: 3991: 3999: 4003: 4015: 4023: 4033: 4035: 4041: 4045: 4063: 4069: 4081: 4095: 4105: 4107: 4129: 4131: 4161: 4165:  
4173: 4179: 4189: 4195: 4201: 4203: 4207: 4227: 4237: 4251: 4255: 4257: 4263: 4269: 4285: 4287: 4315: 4321: 4329: 4335:  
4363: 4377: 4383: 4389: 4399: 4413: 4431: 4441: 4443: 4455: 4461: 4465: 4483: 4485: 4495: 4509: 4519: 4521: 4539: 4551:  
4561: 4567: 4569: 4573: 4587: 4609: 4611: 4621: 4623: 4629: 4645: 4647: 4653: 4663: 4671: 4675: 4695: 4699: 4713: 4717:  
4725: 4741: 4761: 4767: 4773: 4797: 4801: 4809: 4813: 4819: 4833: 4837: 4839: 4843: 4851: 4863: 4867: 4881: 4887: 4893:  
4929: 4951: 4963: 4965: 4969: 4977: 4987: 4989: 4993: 4999: 5001: 5007: 5019: 5029: 5041: 5043: 5049: 5053: 5089: 5103:  
5127: 5137: 5139: 5149: 5151: 5157: 5169: 5179: 5181: 5191: 5211: 5217: 5229: 5233: 5235: 5253: 5259: 5277: 5283: 5293:  
5295: 5299: 5325: 5335: 5341: 5343: 5371: 5377: 5379: 5385: 5409: 5419: 5427: 5433: 5449: 5455: 5463: 5473: 5487: 5491:  
5503: 5515: 5527: 5547: 5551: 5559: 5569: 5577: 5587: 5589: 5593: 5599: 5613: 5617: 5637: 5641: 5649: 5655: 5661: 5671:  
5673: 5679: 5691: 5701: 5707: 5713: 5719: 5737: 5755: 5763: 5767: 5769: 5803: 5809: 5817: 5827: 5833: 5839: 5851: 5869:  
5883: 5889: 5893: 5901: 5905: 5911: 5913: 5923: 5959: 5965: 5967: 5971: 5973: 5977: 5991: 5997: 6009: 6019: 6031: 6049:  
6055: 6061: 6079: 6093: 6111: 6115: 6123: 6141: 6147: 6159: 6163: 6175: 6177: 6195: 6211: 6229: 6237: 6243: 6249: 6253:  
6271: 6273: 6279: 6301: 6309: 6331: 6345: 6351: 6355: 6363: 6367: 6369: 6373: 6379: 6385: 6399: 6411: 6415: 6427: 6433:  
6435: 6447: 6463: 6471: 6475: 6477: 6501: 6505: 6523: 6531: 6535: 6541: 6553: 6559: 6567: 6573: 6601: 6621: 6625: 6631:  
6661: 6663: 6667: 6669: 6679: 6687: 6693: 6715: 6723: 6733: 6741: 6745: 6747: 6753: 6757: 6763: 6765: 6783: 6787: 6789:  
6841: 6849: 6867: 6871: 6883: 6891: 6909: 6915: 6921: 6931: 6933: 6937: 6951: 6981: 6985: 6999: 7003: 7009: 7035: 7041:  
7045: 7047: 7069: 7077: 7081: 7087: 7101: 7111: 7129: 7135: 7153: 7167: 7171: 7173: 7183: 7191: 7195: 7197: 7207: 7215:  
7231: 7233: 7237: 7245: 7249: 7279: 7293: 7299: 7311: 7321: 7333: 7339: 7341: 7345: 7357: 7359: 7371: 7377: 7395: 7401:  
7405: 7419: 7435: 7437: 7443: 7447: 7459: 7471: 7489: 7501: 7503: 7507: 7531: 7533: 7549: 7551: 7563: 7567: 7575: 7585:  
7591: 7593: 7603: 7609: 7629: 7633: 7639: 7645: 7677: 7687: 7689: 7701: 7711: 7717: 7737: 7755: 7779: 7791: 7795: 7801:  
7803: 7813: 7827: 7833: 7837: 7855: 7881: 7885: 7897: 7899: 7909: 7917: 7921: 7929: 7939: 7947: 7951: 7963: 7969: 7971:  
8001: 8005: 8007: 8013: 8037: 8047: 8071: 8073: 8085: 8089: 8107: 8109: 8127: 8131: 8139: 8151: 8161: 8169: 8173: 8175:  
8191: 8193: 8221: 8223: 8227: 8233: 8253: 8257: 8263: 8269: 8283: 8289: 8299: 8325: 8331: 8347: 8359: 8365: 8367: 8379:  
8409: 8413: 8421: 8445: 8449: 8467: 8473: 8475: 8479: 8487: 8493: 8515: 8535: 8539: 8551: 8553: 8575: 8577: 8583: 8589:  
8601: 8605: 8611: 8617: 8635: 8637: 8641: 8647: 8655: 8661: 8673: 8683: 8719: 8757: 8769: 8773: 8787: 8793: 8805: 8809:  
8827: 8829: 8833: 8835: 8841: 8869: 8871: 8895: 8913: 8931: 8937: 8947: 8955: 8961: 8977: 8979: 8989: 8995: 8997: 9009:  
9031: 9033: 9061: 9063: 9073: 9075: 9081: 9085: 9115: 9117: 9121: 9123: 9135: 9139: 9145: 9151: 9177: 9181: 9211: 9213:  
9223: 9231: 9235: 9249: 9253: 9267: 9273: 9277: 9285: 9291: 9303: 9315: 9331: 9339: 9349: 9373: 9387: 9399: 9403: 9409:  
9421: 9423: 9429: 9441: 9451: 9457: 9471: 9475: 9481: 9483: 9487: 9501: 9535: 9537: 9543: 9547: 9549: 9555: 9561: 9567:  
9613: 9621: 9625: 9631: 9643: 9649: 9661: 9663: 9675: 9687: 9691: 9703: 9727: 9733: 9751: 9753: 9775: 9787: 9789: 9795:  
9801: 9807: 9811: 9813: 9837: 9841: 9883: 9895: 9915: 9927: 9937: 9957: 9961: 9979: 9985: 9987: 9997: 9999: val it : unit = () 
 
スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

非公開コメント

プロフィール

T GYOUTEN

Author:T GYOUTEN
F#と英単語とフリーソフトと読書に興味があります。
ホームページでフリーソフトも公開しています。どぞ御贔屓に。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
フリーエリア
フリーエリア
blogram投票ボタン
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。