Syntactic Confectionery Delight PerlMonks

### comment on

 Need Help??

My best performing pure perl attempt so far runs that testcase in just over 8 seconds:

```[ 3:24:33.57] P:\test>fet3 989 9400 43300 2400
[989 9400 43300 2400]
0.80706046478676263e-7029
1 trial  of _default (   8.164s total), 8.164s/trial

The precision is limited to that of a standard double, but I played some games with scaling during the final calculation in order to achieve a range beyond that of a 1e±308 of a double.

Theortically, it will now handle some pretty big numbers, but the limiting factor is memory as I am generating some pretty big lists. I should be able to alleviate that substantially by implementing Limbic~Region's idea of cancelling the factorials against each other before generating the product lists rather than building all the lists and then cancelling them as I am now. Ie.

```10389! 4570! 44289! 11800!
------------------------------
56089! 989! 9400! 43300! 2400!

becomes

44289! 11800! 10389! 4570!
------------------------------
56089! 43300! 9400! 2400! 989!

(||10389..9401) (||4570..2401)
---------------------------------------------
(||56089..44290) (||43300..11801) 989!

where (||m..n) indicates the product of the series

In this example that reduces the number of factorisations from 183,406 to 47,444, which ought to make a big difference both on speed and memory consumed, and these saving would be even greater for larger observations in all but the most pathelogical of cases.

I've had some trouble getting that to work properly though. Encoding the heuristics that seem obvious by inspection of one or two cases, into a generalised algorithm for all inputs, is eluding me for the moment.

You might note that 2**32 is not a practical limit, unless most of the terms cancel out.

I agree that 2**32 is very much an upper bound. The main reason for stating it is that it pretty much precludes the benefit of many of the more sophisticated factorisation methods I've read about. It also places a practical upper bound on the number of primes I need.

The code (large because of the embedded primes list)

```#! perl -slw
use strict;
use Benchmark::Timer; my \$T = new Benchmark::Timer;
use List::Util qw[ sum reduce ]; our( \$a, \$b );

sub factors{ 1 .. \$_[ 0 ] }

my @primes = split ' ', do{local \$/; <DATA> };
sub primeFactors{
my( \$n, \$i, @r ) = ( shift, 0 );
while( \$n > 1 ) {
my \$d = \$primes[ \$i++ ];
if( \$d * \$d > \$n ) { push @r, \$n; \$n = 1; }
else { \$n /= \$d, push @r, \$d while \$n % \$d == 0 }
}
return @r
}

sub normalise {
my( \$s, \$n ) = @{+shift };
while( 1 ) {
if(    \$n > 1.0 ) { \$n /= 10; \$s++; redo; }
elsif( \$n < 0.1 ) { \$n *= 10; \$s--; redo; }
else { last }
}
return [ \$s, \$n ];
}

sub sProduct{
reduce{
\$a->[ 0 ] += \$b->[ 0 ];
\$a->[ 1 ] *= \$b->[ 1 ];
normalise( \$a );
} map{ [ 0, \$_ ] } 1, @_;
}

sub FET3 {
my @data = @_;
return unless @data == 4;
my @C = ( sum( @data[ 0, 2 ] ), sum( @data[ 1, 3 ] ) );
my @R = ( sum( @data[ 0, 1 ] ), sum( @data[ 2, 3 ] ) );
my \$N =  sum @C;
my %dividends; \$dividends{ \$_ }++
for map{ primeFactors \$_ } map{ factors \$_  } grep \$_, @R, @C;
my %divisors; \$divisors { \$_ }++
for map{ primeFactors \$_ } map{ factors \$_  } grep \$_, \$N, @da
+ta;
for my \$i ( keys %divisors ) {
if( exists \$dividends{ \$i } ) {
unless( my \$diff = \$divisors{ \$i } - \$dividends{ \$i } )
{ delete \$divisors{ \$i }; delete \$dividends{ \$i };
+}
elsif( \$diff < 0 )
{ \$dividends{ \$i } = -\$diff; delete \$divisors { \$i };
+}
else
{ \$divisors { \$i } =  \$diff; delete \$dividends{ \$i };
+}
}
}
my( \$dScale, \$dividend ) = @{
sProduct( map{ ( \$_ ) x \$dividends{ \$_ } } keys %dividends )
};
my( \$sScale, \$divisor  ) = @{
sProduct( map{ ( \$_ ) x \$divisors{ \$_ }  } keys %divisors )
};
return ( \$dividend / \$divisor, \$dScale - \$sScale );
}

die "Bad args @ARGV" unless @ARGV == 4;
print "[@ARGV]";
\$T->start('');
printf "%.17fe%d\n", FET3 @ARGV;
\$T->stop('');
\$T->report;
exit;
__DATA__
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     1
+03
107     109     113     127     131     137     139     149     1
+51
157     163     167     173     179     181     191     193     1
+97
199     211     223     227     229     233     239     241     2
+51
257     263     269     271     277     281     283     293     3
+07
311     313     317     331     337     347     349     353     3
+59
367     373     379     383     389     397     401     409     4
+19
421     431     433     439     443     449     457     461     4
+63
467     479     487     491     499     503     509     521     5
+23
541     547     557     563     569     571     577     587     5
+93
599     601     607     613     617     619     631     641     6
+43
647     653     659     661     673     677     683     691     7
+01
709     719     727     733     739     743     751     757     7
+61
769     773     787     797     809     811     821     823     8
+27
829     839     853     857     859     863     877     881     8
+83
887     907     911     919     929     937     941     947     9
+53
967     971     977     983     991     997    1009    1013    10
+19
1021    1031    1033    1039    1049    1051    1061    1063    10
+69
1087    1091    1093    1097    1103    1109    1117    1123    11
+29
1151    1153    1163    1171    1181    1187    1193    1201    12
+13
1217    1223    1229    1231    1237    1249    1259    1277    12
+79
1283    1289    1291    1297    1301    1303    1307    1319    13
+21
1327    1361    1367    1373    1381    1399    1409    1423    14
+27
1429    1433    1439    1447    1451    1453    1459    1471    14
+81
1483    1487    1489    1493    1499    1511    1523    1531    15
+43
1549    1553    1559    1567    1571    1579    1583    1597    16
+01
1607    1609    1613    1619    1621    1627    1637    1657    16
+63
1667    1669    1693    1697    1699    1709    1721    1723    17
+33
1741    1747    1753    1759    1777    1783    1787    1789    18
+01
1811    1823    1831    1847    1861    1867    1871    1873    18
+77
1879    1889    1901    1907    1913    1931    1933    1949    19
+51
1973    1979    1987    1993    1997    1999    2003    2011    20
+17
2027    2029    2039    2053    2063    2069    2081    2083    20
+87
2089    2099    2111    2113    2129    2131    2137    2141    21
+43
2153    2161    2179    2203    2207    2213    2221    2237    22
+39
2243    2251    2267    2269    2273    2281    2287    2293    22
+97
2309    2311    2333    2339    2341    2347    2351    2357    23
+71
2377    2381    2383    2389    2393    2399    2411    2417    24
+23
2437    2441    2447    2459    2467    2473    2477    2503    25
+21
2531    2539    2543    2549    2551    2557    2579    2591    25
+93
2609    2617    2621    2633    2647    2657    2659    2663    26
+71
2677    2683    2687    2689    2693    2699    2707    2711    27
+13
2719    2729    2731    2741    2749    2753    2767    2777    27
+89
2791    2797    2801    2803    2819    2833    2837    2843    28
+51
2857    2861    2879    2887    2897    2903    2909    2917    29
+27
2939    2953    2957    2963    2969    2971    2999    3001    30
+11
3019    3023    3037    3041    3049    3061    3067    3079    30
+83
3089    3109    3119    3121    3137    3163    3167    3169    31
+81
3187    3191    3203    3209    3217    3221    3229    3251    32
+53
3257    3259    3271    3299    3301    3307    3313    3319    33
+23
3329    3331    3343    3347    3359    3361    3371    3373    33
+89
3391    3407    3413    3433    3449    3457    3461    3463    34
+67
3469    3491    3499    3511    3517    3527    3529    3533    35
+39
3541    3547    3557    3559    3571    3581    3583    3593    36
+07
3613    3617    3623    3631    3637    3643    3659    3671    36
+73
3677    3691    3697    3701    3709    3719    3727    3733    37
+39
3761    3767    3769    3779    3793    3797    3803    3821    38
+23
3833    3847    3851    3853    3863    3877    3881    3889    39
+07
3911    3917    3919    3923    3929    3931    3943    3947    39
+67
3989    4001    4003    4007    4013    4019    4021    4027    40
+49
4051    4057    4073    4079    4091    4093    4099    4111    41
+27
4129    4133    4139    4153    4157    4159    4177    4201    42
+11
4217    4219    4229    4231    4241    4243    4253    4259    42
+61
4271    4273    4283    4289    4297    4327    4337    4339    43
+49
4357    4363    4373    4391    4397    4409    4421    4423    44
+41
4447    4451    4457    4463    4481    4483    4493    4507    45
+13
4517    4519    4523    4547    4549    4561    4567    4583    45
+91
4597    4603    4621    4637    4639    4643    4649    4651    46
+57
4663    4673    4679    4691    4703    4721    4723    4729    47
+33
4751    4759    4783    4787    4789    4793    4799    4801    48
+13
4817    4831    4861    4871    4877    4889    4903    4909    49
+19
4931    4933    4937    4943    4951    4957    4967    4969    49
+73
4987    4993    4999    5003    5009    5011    5021    5023    50
+39
5051    5059    5077    5081    5087    5099    5101    5107    51
+13
5119    5147    5153    5167    5171    5179    5189    5197    52
+09
5227    5231    5233    5237    5261    5273    5279    5281    52
+97
5303    5309    5323    5333    5347    5351    5381    5387    53
+93
5399    5407    5413    5417    5419    5431    5437    5441    54
+43
5449    5471    5477    5479    5483    5501    5503    5507    55
+19
5521    5527    5531    5557    5563    5569    5573    5581    55
+91
5623    5639    5641    5647    5651    5653    5657    5659    56
+69
5683    5689    5693    5701    5711    5717    5737    5741    57
+43
5749    5779    5783    5791    5801    5807    5813    5821    58
+27
5839    5843    5849    5851    5857    5861    5867    5869    58
+79
5881    5897    5903    5923    5927    5939    5953    5981    59
+87
6007    6011    6029    6037    6043    6047    6053    6067    60
+73
6079    6089    6091    6101    6113    6121    6131    6133    61
+43
6151    6163    6173    6197    6199    6203    6211    6217    62
+21
6229    6247    6257    6263    6269    6271    6277    6287    62
+99
6301    6311    6317    6323    6329    6337    6343    6353    63
+59
6361    6367    6373    6379    6389    6397    6421    6427    64
+49
6451    6469    6473    6481    6491    6521    6529    6547    65
+51
6553    6563    6569    6571    6577    6581    6599    6607    66
+19
6637    6653    6659    6661    6673    6679    6689    6691    67
+01
6703    6709    6719    6733    6737    6761    6763    6779    67
+81
6791    6793    6803    6823    6827    6829    6833    6841    68
+57
6863    6869    6871    6883    6899    6907    6911    6917    69
+47
6949    6959    6961    6967    6971    6977    6983    6991    69
+97
7001    7013    7019    7027    7039    7043    7057    7069    70
+79
7103    7109    7121    7127    7129    7151    7159    7177    71
+87
7193    7207    7211    7213    7219    7229    7237    7243    72
+47
7253    7283    7297    7307    7309    7321    7331    7333    73
+49
7351    7369    7393    7411    7417    7433    7451    7457    74
+59
7477    7481    7487    7489    7499    7507    7517    7523    75
+29
7537    7541    7547    7549    7559    7561    7573    7577    75
+83
7589    7591    7603    7607    7621    7639    7643    7649    76
+69
7673    7681    7687    7691    7699    7703    7717    7723    77
+27
7741    7753    7757    7759    7789    7793    7817    7823    78
+29
7841    7853    7867    7873    7877    7879    7883    7901    79
+07
7919    7927    7933    7937    7949    7951    7963    7993    80
+09
8011    8017    8039    8053    8059    8069    8081    8087    80
+89
8093    8101    8111    8117    8123    8147    8161    8167    81
+71
8179    8191    8209    8219    8221    8231    8233    8237    82
+43
8263    8269    8273    8287    8291    8293    8297    8311    83
+17
8329    8353    8363    8369    8377    8387    8389    8419    84
+23
8429    8431    8443    8447    8461    8467    8501    8513    85
+21
8527    8537    8539    8543    8563    8573    8581    8597    85
+99
8609    8623    8627    8629    8641    8647    8663    8669    86
+77
8681    8689    8693    8699    8707    8713    8719    8731    87
+37
8741    8747    8753    8761    8779    8783    8803    8807    88
+19
8821    8831    8837    8839    8849    8861    8863    8867    88
+87
8893    8923    8929    8933    8941    8951    8963    8969    89
+71
8999    9001    9007    9011    9013    9029    9041    9043    90
+49
9059    9067    9091    9103    9109    9127    9133    9137    91
+51
9157    9161    9173    9181    9187    9199    9203    9209    92
+21
9227    9239    9241    9257    9277    9281    9283    9293    93
+11
9319    9323    9337    9341    9343    9349    9371    9377    93
+91
9397    9403    9413    9419    9421    9431    9433    9437    94
+39
9461    9463    9467    9473    9479    9491    9497    9511    95
+21
9533    9539    9547    9551    9587    9601    9613    9619    96
+23
9629    9631    9643    9649    9661    9677    9679    9689    96
+97
9719    9721    9733    9739    9743    9749    9767    9769    97
+81
9787    9791    9803    9811    9817    9829    9833    9839    98
+51
9857    9859    9871    9883    9887    9901    9907    9923    99
+29
9931    9941    9949    9967    9973   10007   10009   10037   100
+39
10061   10067   10069   10079   10091   10093   10099   10103   101
+11
10133   10139   10141   10151   10159   10163   10169   10177   101
+81
10193   10211   10223   10243   10247   10253   10259   10267   102
+71
10273   10289   10301   10303   10313   10321   10331   10333   103
+37
10343   10357   10369   10391   10399   10427   10429   10433   104
+53
10457   10459   10463   10477   10487   10499   10501   10513   105
+29
10531   10559   10567   10589   10597   10601   10607   10613   106
+27
10631   10639   10651   10657   10663   10667   10687   10691   107
+09
10711   10723   10729   10733   10739   10753   10771   10781   107
+89
10799   10831   10837   10847   10853   10859   10861   10867   108
+83
10889   10891   10903   10909   10937   10939   10949   10957   109
+73
10979   10987   10993   11003   11027   11047   11057   11059   110
+69
11071   11083   11087   11093   11113   11117   11119   11131   111
+49
11159   11161   11171   11173   11177   11197   11213   11239   112
+43
11251   11257   11261   11273   11279   11287   11299   11311   113
+17
11321   11329   11351   11353   11369   11383   11393   11399   114
+11
11423   11437   11443   11447   11467   11471   11483   11489   114
+91
11497   11503   11519   11527   11549   11551   11579   11587   115
+93
11597   11617   11621   11633   11657   11677   11681   11689   116
+99
11701   11717   11719   11731   11743   11777   11779   11783   117
+89
11801   11807   11813   11821   11827   11831   11833   11839   118
+63
11867   11887   11897   11903   11909   11923   11927   11933   119
+39
11941   11953   11959   11969   11971   11981   11987   12007   120
+11
12037   12041   12043   12049   12071   12073   12097   12101   121
+07
12109   12113   12119   12143   12149   12157   12161   12163   121
+97
12203   12211   12227   12239   12241   12251   12253   12263   122
+69
12277   12281   12289   12301   12323   12329   12343   12347   123
+73
12377   12379   12391   12401   12409   12413   12421   12433   124
+37
12451   12457   12473   12479   12487   12491   12497   12503   125
+11
12517   12527   12539   12541   12547   12553   12569   12577   125
+83
12589   12601   12611   12613   12619   12637   12641   12647   126
+53
12659   12671   12689   12697   12703   12713   12721   12739   127
+43
12757   12763   12781   12791   12799   12809   12821   12823   128
+29
12841   12853   12889   12893   12899   12907   12911   12917   129
+19
12923   12941   12953   12959   12967   12973   12979   12983   130
+01
13003   13007   13009   13033   13037   13043   13049   13063   130
+93
13099   13103   13109   13121   13127   13147   13151   13159   131
+63
13171   13177   13183   13187   13217   13219   13229   13241   132
+49
13259   13267   13291   13297   13309   13313   13327   13331   133
+37
13339   13367   13381   13397   13399   13411   13417   13421   134
+41
13451   13457   13463   13469   13477   13487   13499   13513   135
+23
13537   13553   13567   13577   13591   13597   13613   13619   136
+27
13633   13649   13669   13679   13681   13687   13691   13693   136
+97
13709   13711   13721   13723   13729   13751   13757   13759   137
+63
13781   13789   13799   13807   13829   13831   13841   13859   138
+73
13877   13879   13883   13901   13903   13907   13913   13921   139
+31
13933   13963   13967   13997   13999   14009   14011   14029   140
+33
14051   14057   14071   14081   14083   14087   14107   14143   141
+49
14153   14159   14173   14177   14197   14207   14221   14243   142
+49
14251   14281   14293   14303   14321   14323   14327   14341   143
+47
14369   14387   14389   14401   14407   14411   14419   14423   144
+31
14437   14447   14449   14461   14479   14489   14503   14519   145
+33
14537   14543   14549   14551   14557   14561   14563   14591   145
+93
14621   14627   14629   14633   14639   14653   14657   14669   146
+83
14699   14713   14717   14723   14731   14737   14741   14747   147
+53
14759   14767   14771   14779   14783   14797   14813   14821   148
+27
14831   14843   14851   14867   14869   14879   14887   14891   148
+97
14923   14929   14939   14947   14951   14957   14969   14983   150
+13
15017   15031   15053   15061   15073   15077   15083   15091   151
+01
15107   15121   15131   15137   15139   15149   15161   15173   151
+87
15193   15199   15217   15227   15233   15241   15259   15263   152
+69
15271   15277   15287   15289   15299   15307   15313   15319   153
+29
15331   15349   15359   15361   15373   15377   15383   15391   154
+01
15413   15427   15439   15443   15451   15461   15467   15473   154
+93
15497   15511   15527   15541   15551   15559   15569   15581   155
+83
15601   15607   15619   15629   15641   15643   15647   15649   156
+61
15667   15671   15679   15683   15727   15731   15733   15737   157
+39
15749   15761   15767   15773   15787   15791   15797   15803   158
+09
15817   15823   15859   15877   15881   15887   15889   15901   159
+07
15913   15919   15923   15937   15959   15971   15973   15991   160
+01
16007   16033   16057   16061   16063   16067   16069   16073   160
+87
16091   16097   16103   16111   16127   16139   16141   16183   161
+87
16189   16193   16217   16223   16229   16231   16249   16253   162
+67
16273   16301   16319   16333   16339   16349   16361   16363   163
+69
16381   16411   16417   16421   16427   16433   16447   16451   164
+53
16477   16481   16487   16493   16519   16529   16547   16553   165
+61
16567   16573   16603   16607   16619   16631   16633   16649   166
+51
16657   16661   16673   16691   16693   16699   16703   16729   167
+41
16747   16759   16763   16787   16811   16823   16829   16831   168
+43
16871   16879   16883   16889   16901   16903   16921   16927   169
+31
16937   16943   16963   16979   16981   16987   16993   17011   170
+21
17027   17029   17033   17041   17047   17053   17077   17093   170
+99
17107   17117   17123   17137   17159   17167   17183   17189   171
+91
17203   17207   17209   17231   17239   17257   17291   17293   172
+99
17317   17321   17327   17333   17341   17351   17359   17377   173
+83
17387   17389   17393   17401   17417   17419   17431   17443   174
+49
17467   17471   17477   17483   17489   17491   17497   17509   175
+19
17539   17551   17569   17573   17579   17581   17597   17599   176
+09
17623   17627   17657   17659   17669   17681   17683   17707   177
+13
17729   17737   17747   17749   17761   17783   17789   17791   178
+07
17827   17837   17839   17851   17863   17881   17891   17903   179
+09
17911   17921   17923   17929   17939   17957   17959   17971   179
+77
17981   17987   17989   18013   18041   18043   18047   18049   180
+59
18061   18077   18089   18097   18119   18121   18127   18131   181
+33
18143   18149   18169   18181   18191   18199   18211   18217   182
+23
18229   18233   18251   18253   18257   18269   18287   18289   183
+01
18307   18311   18313   18329   18341   18353   18367   18371   183
+79
18397   18401   18413   18427   18433   18439   18443   18451   184
+57
18461   18481   18493   18503   18517   18521   18523   18539   185
+41
18553   18583   18587   18593   18617   18637   18661   18671   186
+79
18691   18701   18713   18719   18731   18743   18749   18757   187
+73
18787   18793   18797   18803   18839   18859   18869   18899   189
+11
18913   18917   18919   18947   18959   18973   18979   19001   190
+09
19013   19031   19037   19051   19069   19073   19079   19081   190
+87
19121   19139   19141   19157   19163   19181   19183   19207   192
+11
19213   19219   19231   19237   19249   19259   19267   19273   192
+89
19301   19309   19319   19333   19373   19379   19381   19387   193
+91
19403   19417   19421   19423   19427   19429   19433   19441   194
+47
19457   19463   19469   19471   19477   19483   19489   19501   195
+07
19531   19541   19543   19553   19559   19571   19577   19583   195
+97
19603   19609   19661   19681   19687   19697   19699   19709   197
+17
19727   19739   19751   19753   19759   19763   19777   19793   198
+01
19813   19819   19841   19843   19853   19861   19867   19889   198
+91
19913   19919   19927   19937   19949   19961   19963   19973   199
+79
19991   19993   19997   20011   20021   20023   20029   20047   200
+51
20063   20071   20089   20101   20107   20113   20117   20123   201
+29
20143   20147   20149   20161   20173   20177   20183   20201   202
+19
20231   20233   20249   20261   20269   20287   20297   20323   203
+27
20333   20341   20347   20353   20357   20359   20369   20389   203
+93
20399   20407   20411   20431   20441   20443   20477   20479   204
+83
20507   20509   20521   20533   20543   20549   20551   20563   205
+93
20599   20611   20627   20639   20641   20663   20681   20693   207
+07
20717   20719   20731   20743   20747   20749   20753   20759   207
+71
20773   20789   20807   20809   20849   20857   20873   20879   208
+87
20897   20899   20903   20921   20929   20939   20947   20959   209
+63
20981   20983   21001   21011   21013   21017   21019   21023   210
+31
21059   21061   21067   21089   21101   21107   21121   21139   211
+43
21149   21157   21163   21169   21179   21187   21191   21193   212
+11
21221   21227   21247   21269   21277   21283   21313   21317   213
+19
21323   21341   21347   21377   21379   21383   21391   21397   214
+01
21407   21419   21433   21467   21481   21487   21491   21493   214
+99
21503   21517   21521   21523   21529   21557   21559   21563   215
+69
21577   21587   21589   21599   21601   21611   21613   21617   216
+47
21649   21661   21673   21683   21701   21713   21727   21737   217
+39
21751   21757   21767   21773   21787   21799   21803   21817   218
+21
21839   21841   21851   21859   21863   21871   21881   21893   219
+11
21929   21937   21943   21961   21977   21991   21997   22003   220
+13
22027   22031   22037   22039   22051   22063   22067   22073   220
+79
22091   22093   22109   22111   22123   22129   22133   22147   221
+53
22157   22159   22171   22189   22193   22229   22247   22259   222
+71
22273   22277   22279   22283   22291   22303   22307   22343   223
+49
22367   22369   22381   22391   22397   22409   22433   22441   224
+47
22453   22469   22481   22483   22501   22511   22531   22541   225
+43
22549   22567   22571   22573   22613   22619   22621   22637   226
+39
22643   22651   22669   22679   22691   22697   22699   22709   227
+17
22721   22727   22739   22741   22751   22769   22777   22783   227
+87
22807   22811   22817   22853   22859   22861   22871   22877   229
+01
22907   22921   22937   22943   22961   22963   22973   22993   230
+03
23011   23017   23021   23027   23029   23039   23041   23053   230
+57
23059   23063   23071   23081   23087   23099   23117   23131   231
+43
23159   23167   23173   23189   23197   23201   23203   23209   232
+27
23251   23269   23279   23291   23293   23297   23311   23321   233
+27
23333   23339   23357   23369   23371   23399   23417   23431   234
+47
23459   23473   23497   23509   23531   23537   23539   23549   235
+57
23561   23563   23567   23581   23593   23599   23603   23609   236
+23
23627   23629   23633   23663   23669   23671   23677   23687   236
+89
23719   23741   23743   23747   23753   23761   23767   23773   237
+89
23801   23813   23819   23827   23831   23833   23857   23869   238
+73
23879   23887   23893   23899   23909   23911   23917   23929   239
+57
23971   23977   23981   23993   24001   24007   24019   24023   240
+29
24043   24049   24061   24071   24077   24083   24091   24097   241
+03
24107   24109   24113   24121   24133   24137   24151   24169   241
+79
24181   24197   24203   24223   24229   24239   24247   24251   242
+81
24317   24329   24337   24359   24371   24373   24379   24391   244
+07
24413   24419   24421   24439   24443   24469   24473   24481   244
+99
24509   24517   24527   24533   24547   24551   24571   24593   246
+11
24623   24631   24659   24671   24677   24683   24691   24697   247
+09
24733   24749   24763   24767   24781   24793   24799   24809   248
+21
24841   24847   24851   24859   24877   24889   24907   24917   249
+19
24923   24943   24953   24967   24971   24977   24979   24989   250
+13
25031   25033   25037   25057   25073   25087   25097   25111   251
+17
25121   25127   25147   25153   25163   25169   25171   25183   251
+89
25219   25229   25237   25243   25247   25253   25261   25301   253
+03
25307   25309   25321   25339   25343   25349   25357   25367   253
+73
25391   25409   25411   25423   25439   25447   25453   25457   254
+63
25469   25471   25523   25537   25541   25561   25577   25579   255
+83
25589   25601   25603   25609   25621   25633   25639   25643   256
+57
25667   25673   25679   25693   25703   25717   25733   25741   257
+47
25759   25763   25771   25793   25799   25801   25819   25841   258
+47
25849   25867   25873   25889   25903   25913   25919   25931   259
+33
25939   25943   25951   25969   25981   25997   25999   26003   260
+17
26021   26029   26041   26053   26083   26099   26107   26111   261
+13
26119   26141   26153   26161   26171   26177   26183   26189   262
+03
26209   26227   26237   26249   26251   26261   26263   26267   262
+93
26297   26309   26317   26321   26339   26347   26357   26371   263
+87
26393   26399   26407   26417   26423   26431   26437   26449   264
+59
26479   26489   26497   26501   26513   26539   26557   26561   265
+73
26591   26597   26627   26633   26641   26647   26669   26681   266
+83
26687   26693   26699   26701   26711   26713   26717   26723   267
+29
26731   26737   26759   26777   26783   26801   26813   26821   268
+33
26839   26849   26861   26863   26879   26881   26891   26893   269
+03
26921   26927   26947   26951   26953   26959   26981   26987   269
+93
27011   27017   27031   27043   27059   27061   27067   27073   270
+77
27091   27103   27107   27109   27127   27143   27179   27191   271
+97
27211   27239   27241   27253   27259   27271   27277   27281   272
+83
27299   27329   27337   27361   27367   27397   27407   27409   274
+27
27431   27437   27449   27457   27479   27481   27487   27509   275
+27
27529   27539   27541   27551   27581   27583   27611   27617   276
+31
27647   27653   27673   27689   27691   27697   27701   27733   277
+37
27739   27743   27749   27751   27763   27767   27773   27779   277
+91
27793   27799   27803   27809   27817   27823   27827   27847   278
+51
27883   27893   27901   27917   27919   27941   27943   27947   279
+53
27961   27967   27983   27997   28001   28019   28027   28031   280
+51
28057   28069   28081   28087   28097   28099   28109   28111   281
+23
28151   28163   28181   28183   28201   28211   28219   28229   282
+77
28279   28283   28289   28297   28307   28309   28319   28349   283
+51
28387   28393   28403   28409   28411   28429   28433   28439   284
+47
28463   28477   28493   28499   28513   28517   28537   28541   285
+47
28549   28559   28571   28573   28579   28591   28597   28603   286
+07
28619   28621   28627   28631   28643   28649   28657   28661   286
+63
28669   28687   28697   28703   28711   28723   28729   28751   287
+53
28759   28771   28789   28793   28807   28813   28817   28837   288
+43
28859   28867   28871   28879   28901   28909   28921   28927   289
+33
28949   28961   28979   29009   29017   29021   29023   29027   290
+33
29059   29063   29077   29101   29123   29129   29131   29137   291
+47
29153   29167   29173   29179   29191   29201   29207   29209   292
+21
29231   29243   29251   29269   29287   29297   29303   29311   293
+27
29333   29339   29347   29363   29383   29387   29389   29399   294
+01
29411   29423   29429   29437   29443   29453   29473   29483   295
+01
29527   29531   29537   29567   29569   29573   29581   29587   295
+99
29611   29629   29633   29641   29663   29669   29671   29683   297
+17
29723   29741   29753   29759   29761   29789   29803   29819   298
+33
29837   29851   29863   29867   29873   29879   29881   29917   299
+21
29927   29947   29959   29983   29989   30011   30013   30029   300
+47
30059   30071   30089   30091   30097   30103   30109   30113   301
+19
30133   30137   30139   30161   30169   30181   30187   30197   302
+03
30211   30223   30241   30253   30259   30269   30271   30293   303
+07
30313   30319   30323   30341   30347   30367   30389   30391   304
+03
30427   30431   30449   30467   30469   30491   30493   30497   305
+09
30517   30529   30539   30553   30557   30559   30577   30593   306
+31
30637   30643   30649   30661   30671   30677   30689   30697   307
+03
30707   30713   30727   30757   30763   30773   30781   30803   308
+09
30817   30829   30839   30841   30851   30853   30859   30869   308
+71
30881   30893   30911   30931   30937   30941   30949   30971   309
+77
30983   31013   31019   31033   31039   31051   31063   31069   310
+79
31081   31091   31121   31123   31139   31147   31151   31153   311
+59
31177   31181   31183   31189   31193   31219   31223   31231   312
+37
31247   31249   31253   31259   31267   31271   31277   31307   313
+19
31321   31327   31333   31337   31357   31379   31387   31391   313
+93
31397   31469   31477   31481   31489   31511   31513   31517   315
+31
31541   31543   31547   31567   31573   31583   31601   31607   316
+27
31643   31649   31657   31663   31667   31687   31699   31721   317
+23
31727   31729   31741   31751   31769   31771   31793   31799   318
+17
31847   31849   31859   31873   31883   31891   31907   31957   319
+63
31973   31981   31991   32003   32009   32027   32029   32051   320
+57
32059   32063   32069   32077   32083   32089   32099   32117   321
+19
32141   32143   32159   32173   32183   32189   32191   32203   322
+13
32233   32237   32251   32257   32261   32297   32299   32303   323
+09
32321   32323   32327   32341   32353   32359   32363   32369   323
+71
32377   32381   32401   32411   32413   32423   32429   32441   324
+43
32467   32479   32491   32497   32503   32507   32531   32533   325
+37
32561   32563   32569   32573   32579   32587   32603   32609   326
+11
32621   32633   32647   32653   32687   32693   32707   32713   327
+17
32719   32749   32771   32779   32783   32789   32797   32801   328
+03
32831   32833   32839   32843   32869   32887   32909   32911   329
+17
32933   32939   32941   32957   32969   32971   32983   32987   329
+93
32999   33013   33023   33029   33037   33049   33053   33071   330
+73
33083   33091   33107   33113   33119   33149   33151   33161   331
+79
33181   33191   33199   33203   33211   33223   33247   33287   332
+89
33301   33311   33317   33329   33331   33343   33347   33349   333
+53
33359   33377   33391   33403   33409   33413   33427   33457   334
+61
33469   33479   33487   33493   33503   33521   33529   33533   335
+47
33563   33569   33577   33581   33587   33589   33599   33601   336
+13
33617   33619   33623   33629   33637   33641   33647   33679   337
+03
33713   33721   33739   33749   33751   33757   33767   33769   337
+73
33791   33797   33809   33811   33827   33829   33851   33857   338
+63
33871   33889   33893   33911   33923   33931   33937   33941   339
+61
33967   33997   34019   34031   34033   34039   34057   34061   341
+23
34127   34129   34141   34147   34157   34159   34171   34183   342
+11
34213   34217   34231   34253   34259   34261   34267   34273   342
+83
34297   34301   34303   34313   34319   34327   34337   34351   343
+61
34367   34369   34381   34403   34421   34429   34439   34457   344
+69
34471   34483   34487   34499   34501   34511   34513   34519   345
+37
34543   34549   34583   34589   34591   34603   34607   34613   346
+31
34649   34651   34667   34673   34679   34687   34693   34703   347
+21
34729   34739   34747   34757   34759   34763   34781   34807   348
+19
34841   34843   34847   34849   34871   34877   34883   34897   349
+13
34919   34939   34949   34961   34963   34981   35023   35027   350
+51
35053   35059   35069   35081   35083   35089   35099   35107   351
+11
35117   35129   35141   35149   35153   35159   35171   35201   352
+21
35227   35251   35257   35267   35279   35281   35291   35311   353
+17
35323   35327   35339   35353   35363   35381   35393   35401   354
+07
35419   35423   35437   35447   35449   35461   35491   35507   355
+09
35521   35527   35531   35533   35537   35543   35569   35573   355
+91
35593   35597   35603   35617   35671   35677   35729   35731   357
+47
35753   35759   35771   35797   35801   35803   35809   35831   358
+37
35839   35851   35863   35869   35879   35897   35899   35911   359
+23
35933   35951   35963   35969   35977   35983   35993   35999   360
+07
36011   36013   36017   36037   36061   36067   36073   36083   360
+97
36107   36109   36131   36137   36151   36161   36187   36191   362
+09
36217   36229   36241   36251   36263   36269   36277   36293   362
+99
36307   36313   36319   36341   36343   36353   36373   36383   363
+89
36433   36451   36457   36467   36469   36473   36479   36493   364
+97
36523   36527   36529   36541   36551   36559   36563   36571   365
+83
36587   36599   36607   36629   36637   36643   36653   36671   366
+77
36683   36691   36697   36709   36713   36721   36739   36749   367
+61
36767   36779   36781   36787   36791   36793   36809   36821   368
+33
36847   36857   36871   36877   36887   36899   36901   36913   369
+19
36923   36929   36931   36943   36947   36973   36979   36997   370
+03
37013   37019   37021   37039   37049   37057   37061   37087   370
+97
37117   37123   37139   37159   37171   37181   37189   37199   372
+01
37217   37223   37243   37253   37273   37277   37307   37309   373
+13
37321   37337   37339   37357   37361   37363   37369   37379   373
+97
37409   37423   37441   37447   37463   37483   37489   37493   375
+01
37507   37511   37517   37529   37537   37547   37549   37561   375
+67
37571   37573   37579   37589   37591   37607   37619   37633   376
+43
37649   37657   37663   37691   37693   37699   37717   37747   377
+81
37783   37799   37811   37813   37831   37847   37853   37861   378
+71
37879   37889   37897   37907   37951   37957   37963   37967   379
+87
37991   37993   37997   38011   38039   38047   38053   38069   380
+83
38113   38119   38149   38153   38167   38177   38183   38189   381
+97
38201   38219   38231   38237   38239   38261   38273   38281   382
+87
38299   38303   38317   38321   38327   38329   38333   38351   383
+71
38377   38393   38431   38447   38449   38453   38459   38461   385
+01
38543   38557   38561   38567   38569   38593   38603   38609   386
+11
38629   38639   38651   38653   38669   38671   38677   38693   386
+99
38707   38711   38713   38723   38729   38737   38747   38749   387
+67
38783   38791   38803   38821   38833   38839   38851   38861   388
+67
38873   38891   38903   38917   38921   38923   38933   38953   389
+59
38971   38977   38993   39019   39023   39041   39043   39047   390
+79
39089   39097   39103   39107   39113   39119   39133   39139   391
+57
39161   39163   39181   39191   39199   39209   39217   39227   392
+29
39233   39239   39241   39251   39293   39301   39313   39317   393
+23
39341   39343   39359   39367   39371   39373   39383   39397   394
+09
39419   39439   39443   39451   39461   39499   39503   39509   395
+11
39521   39541   39551   39563   39569   39581   39607   39619   396
+23
39631   39659   39667   39671   39679   39703   39709   39719   397
+27
39733   39749   39761   39769   39779   39791   39799   39821   398
+27
39829   39839   39841   39847   39857   39863   39869   39877   398
+83
39887   39901   39929   39937   39953   39971   39979   39983   399
+89
40009   40013   40031   40037   40039   40063   40087   40093   400
+99
40111   40123   40127   40129   40151   40153   40163   40169   401
+77
40189   40193   40213   40231   40237   40241   40253   40277   402
+83
40289   40343   40351   40357   40361   40387   40423   40427   404
+29
40433   40459   40471   40483   40487   40493   40499   40507   405
+19
40529   40531   40543   40559   40577   40583   40591   40597   406
+09
40627   40637   40639   40693   40697   40699   40709   40739   407
+51
40759   40763   40771   40787   40801   40813   40819   40823   408
+29
40841   40847   40849   40853   40867   40879   40883   40897   409
+03
40927   40933   40939   40949   40961   40973   40993   41011   410
+17
41023   41039   41047   41051   41057   41077   41081   41113   411
+17
41131   41141   41143   41149   41161   41177   41179   41183   411
+89
41201   41203   41213   41221   41227   41231   41233   41243   412
+57
41263   41269   41281   41299   41333   41341   41351   41357   413
+81
41387   41389   41399   41411   41413   41443   41453   41467   414
+79
41491   41507   41513   41519   41521   41539   41543   41549   415
+79
41593   41597   41603   41609   41611   41617   41621   41627   416
+41
41647   41651   41659   41669   41681   41687   41719   41729   417
+37
41759   41761   41771   41777   41801   41809   41813   41843   418
+49
41851   41863   41879   41887   41893   41897   41903   41911   419
+27
41941   41947   41953   41957   41959   41969   41981   41983   419
+99
42013   42017   42019   42023   42043   42061   42071   42073   420
+83
42089   42101   42131   42139   42157   42169   42179   42181   421
+87
42193   42197   42209   42221   42223   42227   42239   42257   422
+81
42283   42293   42299   42307   42323   42331   42337   42349   423
+59
42373   42379   42391   42397   42403   42407   42409   42433   424
+37
42443   42451   42457   42461   42463   42467   42473   42487   424
+91
42499   42509   42533   42557   42569   42571   42577   42589   426
+11
42641   42643   42649   42667   42677   42683   42689   42697   427
+01
42703   42709   42719   42727   42737   42743   42751   42767   427
+73
42787   42793   42797   42821   42829   42839   42841   42853   428
+59
42863   42899   42901   42923   42929   42937   42943   42953   429
+61
42967   42979   42989   43003   43013   43019   43037   43049   430
+51
43063   43067   43093   43103   43117   43133   43151   43159   431
+77
43189   43201   43207   43223   43237   43261   43271   43283   432
+91
43313   43319   43321   43331   43391   43397   43399   43403   434
+11
43427   43441   43451   43457   43481   43487   43499   43517   435
+41
43543   43573   43577   43579   43591   43597   43607   43609   436
+13
43627   43633   43649   43651   43661   43669   43691   43711   437
+17
43721   43753   43759   43777   43781   43783   43787   43789   437
+93
43801   43853   43867   43889   43891   43913   43933   43943   439
+51
43961   43963   43969   43973   43987   43991   43997   44017   440
+21
44027   44029   44041   44053   44059   44071   44087   44089   441
+01
44111   44119   44123   44129   44131   44159   44171   44179   441
+89
44201   44203   44207   44221   44249   44257   44263   44267   442
+69
44273   44279   44281   44293   44351   44357   44371   44381   443
+83
44389   44417   44449   44453   44483   44491   44497   44501   445
+07
44519   44531   44533   44537   44543   44549   44563   44579   445
+87
44617   44621   44623   44633   44641   44647   44651   44657   446
+83
44687   44699   44701   44711   44729   44741   44753   44771   447
+73
44777   44789   44797   44809   44819   44839   44843   44851   448
+67
44879   44887   44893   44909   44917   44927   44939   44953   449
+59
44963   44971   44983   44987   45007   45013   45053   45061   450
+77
45083   45119   45121   45127   45131   45137   45139   45161   451
+79
45181   45191   45197   45233   45247   45259   45263   45281   452
+89
45293   45307   45317   45319   45329   45337   45341   45343   453
+61
45377   45389   45403   45413   45427   45433   45439   45481   454
+91
45497   45503   45523   45533   45541   45553   45557   45569   455
+87
45589   45599   45613   45631   45641   45659   45667   45673   456
+77
45691   45697   45707   45737   45751   45757   45763   45767   457
+79
45817   45821   45823   45827   45833   45841   45853   45863   458
+69
45887   45893   45943   45949   45953   45959   45971   45979   459
+89
46021   46027   46049   46051   46061   46073   46091   46093   460
+99
46103   46133   46141   46147   46153   46171   46181   46183   461
+87
46199   46219   46229   46237   46261   46271   46273   46279   463
+01
46307   46309   46327   46337   46349   46351   46381   46399   464
+11
46439   46441   46447   46451   46457   46471   46477   46489   464
+99
46507   46511   46523   46549   46559   46567   46573   46589   465
+91
46601   46619   46633   46639   46643   46649   46663   46679   466
+81
46687   46691   46703   46723   46727   46747   46751   46757   467
+69
46771   46807   46811   46817   46819   46829   46831   46853   468
+61
46867   46877   46889   46901   46919   46933   46957   46993   469
+97
47017   47041   47051   47057   47059   47087   47093   47111   471
+19
47123   47129   47137   47143   47147   47149   47161   47189   472
+07
47221   47237   47251   47269   47279   47287   47293   47297   473
+03
47309   47317   47339   47351   47353   47363   47381   47387   473
+89
47407   47417   47419   47431   47441   47459   47491   47497   475
+01
47507   47513   47521   47527   47533   47543   47563   47569   475
+81
47591   47599   47609   47623   47629   47639   47653   47657   476
+59
47681   47699   47701   47711   47713   47717   47737   47741   477
+43
47777   47779   47791   47797   47807   47809   47819   47837   478
+43
47857   47869   47881   47903   47911   47917   47933   47939   479
+47
47951   47963   47969   47977   47981   48017   48023   48029   480
+49
48073   48079   48091   48109   48119   48121   48131   48157   481
+63
48179   48187   48193   48197   48221   48239   48247   48259   482
+71
48281   48299   48311   48313   48337   48341   48353   48371   483
+83
48397   48407   48409   48413   48437   48449   48463   48473   484
+79
48481   48487   48491   48497   48523   48527   48533   48539   485
+41
48563   48571   48589   48593   48611   48619   48623   48647   486
+49
48661   48673   48677   48679   48731   48733   48751   48757   487
+61
48767   48779   48781   48787   48799   48809   48817   48821   488
+23
48847   48857   48859   48869   48871   48883   48889   48907   489
+47
48953   48973   48989   48991   49003   49009   49019   49031   490
+33
49037   49043   49057   49069   49081   49103   49109   49117   491
+21
49123   49139   49157   49169   49171   49177   49193   49199   492
+01
49207   49211   49223   49253   49261   49277   49279   49297   493
+07
49331   49333   49339   49363   49367   49369   49391   49393   494
+09
49411   49417   49429   49433   49451   49459   49463   49477   494
+81
49499   49523   49529   49531   49537   49547   49549   49559   495
+97
49603   49613   49627   49633   49639   49663   49667   49669   496
+81
49697   49711   49727   49739   49741   49747   49757   49783   497
+87
49789   49801   49807   49811   49823   49831   49843   49853   498
+71
49877   49891   49919   49921   49927   49937   49939   49943   499
+57
49991   49993   49999   50021   50023   50033   50047   50051   500
+53
50069   50077   50087   50093   50101   50111   50119   50123   501
+29
50131   50147   50153   50159   50177   50207   50221   50227   502
+31
50261   50263   50273   50287   50291   50311   50321   50329   503
+33
50341   50359   50363   50377   50383   50387   50411   50417   504
+23
50441   50459   50461   50497   50503   50513   50527   50539   505
+43
50549   50551   50581   50587   50591   50593   50599   50627   506
+47
50651   50671   50683   50707   50723   50741   50753   50767   507
+73
50777   50789   50821   50833   50839   50849   50857   50867   508
+73
50891   50893   50909   50923   50929   50951   50957   50969   509
+71
50989   50993   51001   51031   51043   51047   51059   51061   510
+71
51109   51131   51133   51137   51151   51157   51169   51193   511
+97
51199   51203   51217   51229   51239   51241   51257   51263   512
+83
51287   51307   51329   51341   51343   51347   51349   51361   513
+83
51407   51413   51419   51421   51427   51431   51437   51439   514
+49
51461   51473   51479   51481   51487   51503   51511   51517   515
+21
51539   51551   51563   51577   51581   51593   51599   51607   516
+13
51631   51637   51647   51659   51673   51679   51683   51691   517
+13
51719   51721   51749   51767   51769   51787   51797   51803   518
+17
51827   51829   51839   51853   51859   51869   51871   51893   518
+99
51907   51913   51929   51941   51949   51971   51973   51977   519
+91
52009   52021   52027   52051   52057   52067   52069   52081   521
+03
52121   52127   52147   52153   52163   52177   52181   52183   521
+89
52201   52223   52237   52249   52253   52259   52267   52289   522
+91
52301   52313   52321   52361   52363   52369   52379   52387   523
+91
52433   52453   52457   52489   52501   52511   52517   52529   525
+41
52543   52553   52561   52567   52571   52579   52583   52609   526
+27
52631   52639   52667   52673   52691   52697   52709   52711   527
+21
52727   52733   52747   52757   52769   52783   52807   52813   528
+17
52837   52859   52861   52879   52883   52889   52901   52903   529
+19
52937   52951   52957   52963   52967   52973   52981   52999   530
+03
53017   53047   53051   53069   53077   53087   53089   53093   531
+01
53113   53117   53129   53147   53149   53161   53171   53173   531
+89
53197   53201   53231   53233   53239   53267   53269   53279   532
+81
53299   53309   53323   53327   53353   53359   53377   53381   534
+01
53407   53411   53419   53437   53441   53453   53479   53503   535
+07
53527   53549   53551   53569   53591   53593   53597   53609   536
+11
53617   53623   53629   53633   53639   53653   53657   53681   536
+93
53699   53717   53719   53731   53759   53773   53777   53783   537
+91
53813   53819   53831   53849   53857   53861   53881   53887   538
+91
53897   53899   53917   53923   53927   53939   53951   53959   539
+87
53993   54001   54011   54013   54037   54049   54059   54083   540
+91
54101   54121   54133   54139   54151   54163   54167   54181   541
+93
54217   54251   54269   54277   54287   54293   54311   54319   543
+23
54331   54347   54361   54367   54371   54377   54401   54403   544
+09
54413   54419   54421   54437   54443   54449   54469   54493   544
+97
54499   54503   54517   54521   54539   54541   54547   54559   545
+63
54577   54581   54583   54601   54617   54623   54629   54631   546
+47
54667   54673   54679   54709   54713   54721   54727   54751   547
+67
54773   54779   54787   54799   54829   54833   54851   54869   548
+77
54881   54907   54917   54919   54941   54949   54959   54973   549
+79
54983   55001   55009   55021   55049   55051   55057   55061   550
+73
55079   55103   55109   55117   55127   55147   55163   55171   552
+01
55207   55213   55217   55219   55229   55243   55249   55259   552
+91
55313   55331   55333   55337   55339   55343   55351   55373   553
+81
55399   55411   55439   55441   55457   55469   55487   55501   555
+11
55529   55541   55547   55579   55589   55603   55609   55619   556
+21
55631   55633   55639   55661   55663   55667   55673   55681   556
+91
55697   55711   55717   55721   55733   55763   55787   55793   557
+99
55807   55813   55817   55819   55823   55829   55837   55843   558
+49
55871   55889   55897   55901   55903   55921   55927   55931   559
+33
55949   55967   55987   55997   56003   56009   56039   56041   560
+53
56081   56087   56093   56099   56101   56113   56123   56131   561
+49
56167   56171   56179   56197   56207   56209   56237   56239   562
+49
56263   56267   56269   56299   56311   56333   56359   56369   563
+77
56383   56393   56401   56417   56431   56437   56443   56453   564
+67
56473   56477   56479   56489   56501   56503   56509   56519   565
+27
56531   56533   56543   56569   56591   56597   56599   56611   566
+29
56633   56659   56663   56671   56681   56687   56701   56711   567
+13
56731   56737   56747   56767   56773   56779   56783   56807   568
+09
56813   56821   56827   56843   56857   56873   56891   56893   568
+97
56909   56911   56921   56923   56929   56941   56951   56957   569
+63
56983   56989   56993   56999   57037   57041   57047   57059   570
+73
57077   57089   57097   57107   57119   57131   57139   57143   571
+49
57163   57173   57179   57191   57193   57203   57221   57223   572
+41
57251   57259   57269   57271   57283   57287   57301   57329   573
+31
57347   57349   57367   57373   57383   57389   57397   57413   574
+27
57457   57467   57487   57493   57503   57527   57529   57557   575
+59
57571   57587   57593   57601   57637   57641   57649   57653   576
+67
57679   57689   57697   57709   57713   57719   57727   57731   577
+37
57751   57773   57781   57787   57791   57793   57803   57809   578
+29
57839   57847   57853   57859   57881   57899   57901   57917   579
+23
57943   57947   57973   57977   57991   58013   58027   58031   580
+43
58049   58057   58061   58067   58073   58099   58109   58111   581
+29
58147   58151   58153   58169   58171   58189   58193   58199   582
+07
58211   58217   58229   58231   58237   58243   58271   58309   583
+13
58321   58337   58363   58367   58369   58379   58391   58393   584
+03
58411   58417   58427   58439   58441   58451   58453   58477   584
+81
58511   58537   58543   58549   58567   58573   58579   58601   586
+03
58613   58631   58657   58661   58679   58687   58693   58699   587
+11
58727   58733   58741   58757   58763   58771   58787   58789   588
+31
58889   58897   58901   58907   58909   58913   58921   58937   589
+43
58963   58967   58979   58991   58997   59009   59011   59021   590
+23
59029   59051   59053   59063   59069   59077   59083   59093   591
+07
59113   59119   59123   59141   59149   59159   59167   59183   591
+97
59207   59209   59219   59221   59233   59239   59243   59263   592
+73
59281   59333   59341   59351   59357   59359   59369   59377   593
+87
59393   59399   59407   59417   59419   59441   59443   59447   594
+53
59467   59471   59473   59497   59509   59513   59539   59557   595
+61
59567   59581   59611   59617   59621   59627   59629   59651   596
+59
59663   59669   59671   59693   59699   59707   59723   59729   597
+43
59747   59753   59771   59779   59791   59797   59809   59833   598
+63
59879   59887   59921   59929   59951   59957   59971   59981   599
+99
60013   60017   60029   60037   60041   60077   60083   60089   600
+91
60101   60103   60107   60127   60133   60139   60149   60161   601
+67
60169   60209   60217   60223   60251   60257   60259   60271   602
+89
60293   60317   60331   60337   60343   60353   60373   60383   603
+97
60413   60427   60443   60449   60457   60493   60497   60509   605
+21
60527   60539   60589   60601   60607   60611   60617   60623   606
+31
60637   60647   60649   60659   60661   60679   60689   60703   607
+19
60727   60733   60737   60757   60761   60763   60773   60779   607
+93
60811   60821   60859   60869   60887   60889   60899   60901   609
+13
60917   60919   60923   60937   60943   60953   60961   61001   610
+07
61027   61031   61043   61051   61057   61091   61099   61121   611
+29
61141   61151   61153   61169   61211   61223   61231   61253   612
+61
61283   61291   61297   61331   61333   61339   61343   61357   613
+63
61379   61381   61403   61409   61417   61441   61463   61469   614
+71
61483   61487   61493   61507   61511   61519   61543   61547   615
+53
61559   61561   61583   61603   61609   61613   61627   61631   616
+37
61643   61651   61657   61667   61673   61681   61687   61703   617
+17
61723   61729   61751   61757   61781   61813   61819   61837   618
+43
61861   61871   61879   61909   61927   61933   61949   61961   619
+67
61979   61981   61987   61991   62003   62011   62017   62039   620
+47
62053   62057   62071   62081   62099   62119   62129   62131   621
+37
62141   62143   62171   62189   62191   62201   62207   62213   622
+19
62233   62273   62297   62299   62303   62311   62323   62327   623
+47
62351   62383   62401   62417   62423   62459   62467   62473   624
+77
62483   62497   62501   62507   62533   62539   62549   62563   625
+81
62591   62597   62603   62617   62627   62633   62639   62653   626
+59
62683   62687   62701   62723   62731   62743   62753   62761   627
+73
62791   62801   62819   62827   62851   62861   62869   62873   628
+97
62903   62921   62927   62929   62939   62969   62971   62981   629
+83
62987   62989   63029   63031   63059   63067   63073   63079   630
+97
63103   63113   63127   63131   63149   63179   63197   63199   632
+11
63241   63247   63277   63281   63299   63311   63313   63317   633
+31
63337   63347   63353   63361   63367   63377   63389   63391   633
+97
63409   63419   63421   63439   63443   63463   63467   63473   634
+87
63493   63499   63521   63527   63533   63541   63559   63577   635
+87
63589   63599   63601   63607   63611   63617   63629   63647   636
+49
63659   63667   63671   63689   63691   63697   63703   63709   637
+19
63727   63737   63743   63761   63773   63781   63793   63799   638
+03
63809   63823   63839   63841   63853   63857   63863   63901   639
+07
63913   63929   63949   63977   63997   64007   64013   64019   640
+33
64037   64063   64067   64081   64091   64109   64123   64151   641
+53
64157   64171   64187   64189   64217   64223   64231   64237   642
+71
64279   64283   64301   64303   64319   64327   64333   64373   643
+81
64399   64403   64433   64439   64451   64453   64483   64489   644
+99
64513   64553   64567   64577   64579   64591   64601   64609   646
+13
64621   64627   64633   64661   64663   64667   64679   64693   647
+09
64717   64747   64763   64781   64783   64793   64811   64817   648
+49
64853   64871   64877   64879   64891   64901   64919   64921   649
+27
64937   64951   64969   64997   65003   65011   65027   65029   650
+33
65053   65063   65071   65089   65099   65101   65111   65119   651
+23
65129   65141   65147   65167   65171   65173   65179   65183   652
+03
65213   65239   65257   65267   65269   65287   65293   65309   653
+23
65327   65353   65357   65371   65381   65393   65407   65413   654
+19
65423   65437   65447   65449   65479   65497   65519   65521   655
+37

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
"Science is about questioning the status quo. Questioning authority".
The "good enough" maybe good enough for the now, and perfection maybe unobtainable, but that should not preclude us from striving for perfection, when time, circumstance or desire allow.

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

• Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
• Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
• Read Where should I post X? if you're not absolutely sure you're posting in the right place.
• Posts may use any of the Perl Monks Approved HTML tags:
a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
• You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
 For: Use: & & < < > > [ [ ] ]
• Link using PerlMonks shortcuts! What shortcuts can I use for linking?

Create A New User
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (7)
As of 2019-10-18 23:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
In 2019 the site I miss most is:

Results (45 votes). Check out past polls.

Notices?