LOLCODE is a wonderful language, where programs are written in a language that would be very familiar to one of these cats, which of course should always be the target audience for a program. Anyhow, I decided to resolve Problem 10 in LOLCODE - my solution runs in about 15 minutes, which is unfortunately long, but I am pretty sure that this is mostly due to aspects of the language not being implemented very efficiently, because similar prime sieves generally run more quickly in other languages. The most unfortunate aspect of that 15 minutes wait is that when I ran it for the first time, I discovered that the answer was greater than 231, which is the greatest value that can be stored in a NUMBR in lolcode. To remedy this, I store the answer as two base 10,000,000 digits, which then when concatenated form the correct answer (notably this would require some fanciness to accommodate for leading zeroes in the one's place...but luckily there were no leading 0's in this case.) Now, without further ado, my LOLCODE solution (which has now opened up ML for later use)
CAN HAS STDIO? HAI 1.3 I HAS A TOTAL ITZ 2 I HAS A TOTALM ITZ 0 I HAS A P ITZ 3 I HAS A N IM IN YR NUMS N R 2 BTW NEWTON'S METHOD FOR SQRT I HAS A XN XN R QUOSHUNT OF P AN 2 I HAS A XN1 IM IN YR LOOP XN1 R QUOSHUNT OF SUM OF XN AN QUOSHUNT OF P AN XN AN 2 EITHER OF BOTH SAEM XN AN XN1 AN BOTH SAEM XN AN SUM OF XN1 AN 1 O RLY? YA RLY GTFO NO WAI XN R XN1 OIC IM OUTTA YR LOOP I HAS A CAP ITZ SMALLR OF XN AN XN1 IM IN YR TEST BOTH SAEM 0 AN MOD OF P AN N O RLY? YA RLY GTFO OIC DIFFRINT N AN SMALLR OF N AN CAP O RLY? YA RLY BTW ANSWER IS REALLY BIG SO WE REPRESENT IT BTW IN BASE 1000000 TOTAL R SUM OF TOTAL AN P BOTH SAEM TOTAL AN BIGGR OF TOTAL AN 10000000 O RLY? YA RLY TOTAL R DIFF OF TOTAL AN 10000000 TOTALM R SUM OF TOTALM AN 1 OIC GTFO OIC N R SUM OF N AN 1 IM OUTTA YR TEST BOTH SAEM P AN 1999999 O RLY? YA RLY GTFO NO WAI P R SUM OF P AN 2 OIC IM OUTTA YR NUMS VISIBLE ":{TOTALM}:{TOTAL}" KTHXBYE
No comments:
Post a Comment