87 lines
3.4 KiB
FSharp
87 lines
3.4 KiB
FSharp
module program
|
|
|
|
open System
|
|
open System.Windows.Forms
|
|
|
|
[<EntryPoint>]
|
|
let main args =
|
|
let sprintfA f = sprintf "%A" f
|
|
let funize f = fun () -> f
|
|
|
|
let myFunc () =
|
|
printfn "Evaluating myFunc"
|
|
"myFunc Result"
|
|
let sprintfFunc f = fun () -> sprintf "%A" f
|
|
let r = sprintfFunc myFunc
|
|
printfn "%s" (r())
|
|
|
|
let problems = [
|
|
11, fun () -> sprintfA _11.maxProduct;
|
|
12, fun () -> sprintfA _12.fiveDivisorTriangle;
|
|
13, fun () -> sprintfA _13.getSum;
|
|
14, fun () -> sprintfA _14.getLongestChain;
|
|
17, fun () -> sprintfA _17.getNumberWords;
|
|
18, fun () -> sprintfA _18.getTriangleMaxTotal;
|
|
19, fun () -> sprintfA _19.firstSaturdays;
|
|
20, fun () -> sprintfA _20.getSum;
|
|
21, fun () -> sprintfA _21.amicalbleSum;
|
|
22, fun () -> sprintfA _22.nameScores;
|
|
23, fun () -> sprintfA _23.sumNotAbundant;
|
|
24, fun () -> sprintfA _24.run;
|
|
25, fun () -> sprintfA _25.find1000;
|
|
26, fun () -> sprintfA _26.longestRecurringCycle;
|
|
27, fun () -> sprintfA _27.quadraticConsecutivePrimes;
|
|
28, fun () -> sprintfA _28.sumNum;
|
|
29, fun () -> sprintfA _29.getDistinctTerms;
|
|
30, fun () -> sprintfA _30.sumOfSumOfFifthNumbers;
|
|
31, fun () -> sprintfA _31.getCurrencyCombos;
|
|
32, fun () -> sprintfA _32.panDigitalProduct;
|
|
33, fun () -> sprintfA _33.cancelling;
|
|
34, fun () -> sprintfA _34.numSumDigitFactorials;
|
|
35, fun () -> sprintfA _35.circularPrime;
|
|
36, fun () -> sprintfA _36.palindromicBase10and2Sum;
|
|
37, fun () -> sprintfA _37.truncatablePrimes;
|
|
39, fun () -> sprintfA _39.rightTriPerimeter;
|
|
40, fun () -> sprintfA _40.positiveIntegerConcat;
|
|
41, fun () -> sprintfA _41.panDigital;
|
|
42, fun () -> sprintfA _42.triangleWords;
|
|
43, fun () -> sprintfA _43.pandigitalDivisible;
|
|
45, fun () -> sprintfA _45.triPentHex;
|
|
46, fun () -> sprintfA _46.smallestOddCompositeNotSumOfPrimeTwiceSquare;
|
|
47, fun () -> sprintfA _47.consequtivePrimes;
|
|
48, fun () -> sprintfA _48.seriesEnd;
|
|
49, fun () -> sprintfA _49.primeSequence;
|
|
50, fun () -> sprintfA _50.sumOfConsequitivePrimes;
|
|
52, fun () -> sprintfA _52.findSameDigits;
|
|
53, fun () -> sprintfA _53.combinationGt1M;
|
|
54, fun () -> sprintfA _54.pokerWinner;
|
|
55, fun () -> sprintfA _55.lynchrels;
|
|
56, fun () -> sprintfA _56.exponentialDigitSum;
|
|
57, fun () -> sprintfA _57.sqrtTwoDigits;
|
|
58, fun () -> sprintfA _58.primeDiagonals;
|
|
59, fun () -> sprintfA _59.cypher;
|
|
63, fun () -> sprintfA _63.powerDigits;
|
|
69, fun () -> sprintfA _69.relativePrimeFunc;
|
|
79, fun () -> sprintfA _79.findPasscode;
|
|
81, fun () -> sprintfA _81.shortestDistance;
|
|
92, fun () -> sprintfA _92.squareChainLoop;
|
|
97, fun () -> sprintfA _97.bigPrime;
|
|
98, fun () -> sprintfA _98.anagramSquares;
|
|
99, fun () -> sprintfA _99.biggestNum;
|
|
101, fun () -> sprintfA _101.sumOfFITsOfBOPs;
|
|
112, fun () -> sprintfA _112.bouncy90;
|
|
]
|
|
|
|
let problemDict = dict problems
|
|
|
|
let sw = new System.Diagnostics.Stopwatch()
|
|
printfn "starting"
|
|
sw.Start()
|
|
let result = problemDict.[43]()
|
|
sw.Stop()
|
|
printfn "%s" result
|
|
printfn "done in %A" sw.Elapsed
|
|
//Clipboard.SetText(result)
|
|
|
|
Console.ReadKey() |> ignore
|
|
0 |