Task 1
Counting sort.

Code:
Ans->L2 Fill(~1,L2 For([recursiven],1,dim(Ans    1+L2(L1([recursiven]->L2(L1([recursiven] End 1->[recursiven] For(A,1,256    For([recursiven],[recursiven],[recursiven]+L2(A       A->L1([recursiven]    End End 

Task 2
Apparently disqualified because it cannot handle nested parenthesis.
This converts the string to RPN and evaluates at the same time using a shunting yard algorithm.
sqrt() is replaced with ()^.5 for simplicity.

Code:
Ans+") ->Str1 2->dim(L2 2->B 1->[recursiven] Repeat [recursiven]>length(Str1    inString("sqrt((.",sub(Str1,[recursiven],1->A    If Ans    Then       If Ans<3 //sqrt( or (       Then          A-1->B          1+dim(L2->dim(L2       End       If A=3 //decimal       ~1->D       [recursiven]+1->[recursiven] //jump to number    End    //parse in the number    inString("0123456789",sub(Str1,[recursiven],1    If Ans //accumulate    Then       10^(D)(Ans-1)+10^(not(D))C->C       D-not(not(D->D       Else //save and rinse       C->L1(1+dim(L1       0->C       0->D       If ")"=sub(Str1,[recursiven],1 //do special things for )       Then          //pop stack until (          While L2(dim(L2             prgmF          End          [recursiven]+1->[recursiven]          If not(B //add ^.5          Then             .5->L1(1+dim(L1             5->L2(dim(L2             Else             dim(L2)-1->dim(L2          End          2->B       End       //get operator at n, do the things, there may or may not be an operator here. It will be " ", or an operator       inString("+-*/^",sub(Str1,[recursiven],1->A       While int(.5A)-.5(A=5)<int(.5L2(dim(L2          prgmF       End       A->L2(1+dim(L2    End    [recursiven]+1->[recursiven] End L1(1->A 

subprogram (prgmF) pops the stack and applies the operations

Code:
L1(dim(L1->F dim(L1)-1->dim(L1 L1(Ans->E 2L2(dim(L2 If Ans<5 Then    E+F(3-Ans    Else    If Ans<9    Then       EF^(7-Ans       Else       E^F    End End Ans->L1(dim(L1 dim(L2)-1->dim(L2 

Task 3
4!=24, the dim of a list of 4 numbers is always 4.

Code:
"dim({ For(A,1,4 Ans+sub("123456789",L1(A),1)+", End sub(Ans,1,9)+"})!->Str1 

Task 4
This gets rid of all the spaces.
Look up string is arranged based on letter frequencies for speed

Code:
length(Ans->L "T\DS<(\A\+\S\IS>(\H\}\W\Stop\I\If \O\End\B\pi\M\While \F\|E\C\ZoomStat\L\For(\D$\P\Pause \N\Repeat \E$\G\{\R\Goto \Y\cos(\U\prgm\V\Return\J\Then\K\Else\Q\Lbl \Z\tan(X\sin(\->Str2 sub(Str1,1,1->Str3 inString(Str1," While Ans sub(Str1,1,Ans-1)+sub(Str2,1+inString(Str2,sub(Str1,Ans+1,1)),1)+sub(Str1,Ans+2,L-Ans-2->Str1    L-1->L    inString(Str1," End 

Task 5
Checks factors based on a list of all possible primes, reordered and chunked into groups based on semiprime selecting algorithms discussed in SAX.

Code:
{2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109->L1 1+sum(not(cumSum(not(remainder(N,Ans If Ans=30 Then    {7829,7841,7853,7867,7873,7877,7879,7883,7901,7907,7919,7927,7933,7937,7949,7951,7963,7993,8009,8011,8017,8039,8053,8059,8069,8081,8087,8089,8093,8101,8111,8117,8123,8147,8161,8167,8171,8179,8191,8209,8219,8221,8231,8233,8237,8243,8263,8269,8273,8287,8291,8293,8297,8311,8317,8329,8353,8363,8369,8377,8387,8389,8419,8423,8429,8431,8443,8447,8461,8467,8501,8513,8521,8527,8537,8539,8543,8563,8573,8581,8597,8599,8609,8623,8627,8629,8641,8647,8663,8669,8677,8681,8689,8693,8699,8707,8713,8719,8731,8737,8741,8747,8753,8761,8779,8783,8803,8807,8819,8821,8831,8837,8839,8849,8861,8863,8867,8887,8893,8923,8929,8933,8941,8951,8963,8969,8971,8999,9001,9007,9011,9013,9029,9041,9043,9049,9059,9067,9091,9103,9109,9127,9133,9137,9151,9157,9161,9173,9181,9187,9199,9203,9209,9221,9227,9239,9241,9257,9277,9281,9283,9293,9311,9319,9323,9337,9341,9343,9349,9371,9377,9391,9397,9403,9413,9419,9421,9431,9433,9437,9439,9461,9463,9467,9473,9479,9491,9497,9511,9521,9533,9539,9547,9551,9587,9601,9613,9619,9623,9629,9631,9643,9649,9661,9677,9679,9689,9697,9719,9721,9733,9739,9743,9749,9767,9769,9781,9787,9791,9803,9811,9817,9829,9833,9839,9851,9857,9859,9871,9883,9887,9901,9907,9923,9929,9931,9941,9949,9967,9973->L1    1+sum(not(cumSum(not(remainder(N,Ans    If Ans=241    Then       {3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999,5003,5009,5011,5021,5023,5039,5051,5059,5077,5081,5087,5099,5101,5107,5113,5119,5147,5153,5167,5171,5179,5189,5197,5209,5227,5231,5233,5237,5261,5273,5279,5281,5297,5303,5309,5323,5333,5347,5351,5381,5387,5393,5399,5407,5413,5417,5419,5431,5437,5441,5443,5449,5471,5477,5479,5483,5501,5503,5507,5519,5521,5527,5531,5557,5563,5569,5573,5581,5591,5623,5639,5641,5647,5651,5653,5657,5659,5669,5683,5689,5693,5701,5711,5717,5737,5741,5743,5749,5779,5783,5791,5801,5807,5813,5821,5827,5839,5843,5849,5851,5857,5861,5867,5869,5879,5881,5897,5903,5923,5927,5939,5953,5981,5987,6007,6011,6029,6037,6043,6047,6053,6067,6073,6079,6089,6091,6101,6113,6121,6131,6133,6143,6151,6163,6173,6197,6199,6203,6211,6217,6221,6229,6247,6257,6263,6269,6271,6277,6287,6299,6301,6311,6317,6323,6329,6337,6343,6353,6359,6361,6367,6373,6379,6389,6397,6421,6427,6449,6451,6469,6473,6481,6491,6521,6529,6547,6551,6553,6563,6569,6571,6577,6581,6599,6607,6619,6637,6653,6659,6661,6673,6679,6689,6691,6701,6703,6709,6719,6733,6737,6761,6763,6779,6781,6791,6793,6803,6823,6827,6829,6833,6841,6857,6863,6869,6871,6883,6899,6907,6911,6917,6947,6949,6959,6961,6967,6971,6977,6983,6991,6997,7001,7013,7019,7027,7039,7043,7057,7069,7079,7103,7109,7121,7127,7129,7151,7159,7177,7187,7193,7207,7211,7213,7219,7229,7237,7243,7247,7253,7283,7297,7307,7309,7321,7331,7333,7349,7351,7369,7393,7411,7417,7433,7451,7457,7459,7477,7481,7487,7489,7499,7507,7517,7523,7529,7537,7541,7547,7549,7559,7561,7573,7577,7583,7589,7591,7603,7607,7621,7639,7643,7649,7669,7673,7681,7687,7691,7699,7703,7717,7723,7727,7741,7753,7757,7759,7789,7793,7817,7823->L1       1+sum(not(cumSum(not(remainder(N,Ans       If Ans=481       Then          {113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637->L1          1+sum(not(cumSum(not(remainder(N,Ans       End    End End {L1(Ans),N/L1(Ans)->L1 
Disqualified? I thought PT_ explicitly stated on SAX that nested parentheses didn't need to be handled.

jonbush wrote:
Please submit and update your program statistics using this form to have your program added to the leaderboard

For the record, there will be no nested parentheses for challenge 2:

Code:
<jonbush> Will there be nested parentheses? like (sqrt(6/2)^(11))*(39.1) <saxjax> [lirtosiast] as subroutines (for example, literal parsing and a stack) <saxjax> [PT_] Nope <jonbush> That's good <saxjax> [lirtosiast] No nested parens makes this much easier. <saxjax> [PT_] I shouldn't make it harder as it is

EDIT: I commend your program 5 for covering all the ways primes could have been generated much more efficiently than mine did. However, I think it can be slightly faster as:

Code:
{some primes}->L1 remainder(N,Ans If min(Ans Then {other primes}->L1 remainder(N,Ans If min(Ans Then {more primes}->L1 remainder(N,Ans If min(Ans Then {more primes}->L1 remainder(N,Ans End End End 1+sum(not(cumSum(not(Ans {L1(Ans),N/L1(Ans)->L1

Which decreases the number of times not( and cumSum( are called. min( takes only about a ms per list element, whereas not( takes about 0.7, cumSum( takes 1, and sum( takes 1.

Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

»
» All times are GMT - 5 Hours

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

Advertisement