class org.apache.commons.math.primes.SmallPrimes extends java.lang.Object
{
public static final int[] PRIMES;
public static final int PRIMES_LAST;
private void <init>()
{
org.apache.commons.math.primes.SmallPrimes v;
v := @this: org.apache.commons.math.primes.SmallPrimes;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static int smallTrialDivision(int, java.util.List)
{
java.lang.Integer v;
java.util.List v;
int[] v;
int v, v, v, v, v;
v := @parameter: int;
v := @parameter: java.util.List;
v = <org.apache.commons.math.primes.SmallPrimes: int[] PRIMES>;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
label:
v = v % v;
if 0 != v goto label;
v = v / v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v + 1;
goto label;
label:
return v;
}
public static int boundedTrialDivision(int, int, java.util.List)
{
java.lang.Integer v, v, v;
java.util.List v;
int v, v, v, v, v, v, v;
v := @parameter: int;
v := @parameter: int;
v := @parameter: java.util.List;
v = <org.apache.commons.math.primes.SmallPrimes: int PRIMES_LAST>;
v = v + 2;
label:
if v > v goto label;
v = v % v;
if 0 != v goto label;
v = v / v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v + 4;
v = v % v;
if 0 != v goto label;
v = v / v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v + 2;
goto label;
label:
if v == 1 goto label;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
return v;
}
public static java.util.List trialDivision(int)
{
int v, v;
double v;
java.util.ArrayList v;
v := @parameter: int;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(int)>(32);
v = staticinvoke <org.apache.commons.math.primes.SmallPrimes: int smallTrialDivision(int,java.util.List)>(v, v);
if 1 != v goto label;
return v;
label:
v = staticinvoke <org.apache.commons.math.util.FastMath: double sqrt(double)>(v);
staticinvoke <org.apache.commons.math.primes.SmallPrimes: int boundedTrialDivision(int,int,java.util.List)>(v, v, v);
return v;
}
public static boolean millerRabinPrimeTest(int)
{
long v, v;
byte v;
int[] v;
int v, v, v, v, v, v, v, v, v;
java.math.BigInteger v, v, v, v;
v := @parameter: int;
v = v - 1;
v = staticinvoke <java.lang.Integer: int numberOfTrailingZeros(int)>(v);
v = v >> v;
v = 1;
if v < 2047 goto label;
v = 2;
label:
if v < 1373653 goto label;
v = 3;
label:
if v < 25326001 goto label;
v = 4;
label:
v = staticinvoke <java.math.BigInteger: java.math.BigInteger valueOf(long)>(v);
v = staticinvoke <java.math.BigInteger: java.math.BigInteger valueOf(long)>(v);
v = 0;
label:
if v >= v goto label;
v = <org.apache.commons.math.primes.SmallPrimes: int[] PRIMES>;
v = v[v];
v = staticinvoke <java.math.BigInteger: java.math.BigInteger valueOf(long)>(v);
v = virtualinvoke v.<java.math.BigInteger: java.math.BigInteger modPow(java.math.BigInteger,java.math.BigInteger)>(v, v);
v = virtualinvoke v.<java.math.BigInteger: int intValue()>();
if 1 == v goto label;
if v == v goto label;
v = 1;
label:
v = v - 1;
if v > v goto label;
if v == v goto label;
v = v * v;
v = v % v;
if 1 != v goto label;
return 0;
label:
v = v + 1;
goto label;
label:
if v == v goto label;
return 0;
label:
v = v + 1;
goto label;
label:
return 1;
}
static void <clinit>()
{
int[] v, v, v;
int v, v, v;
v = newarray (int)[512];
v[0] = 2;
v[1] = 3;
v[2] = 5;
v[3] = 7;
v[4] = 11;
v[5] = 13;
v[6] = 17;
v[7] = 19;
v[8] = 23;
v[9] = 29;
v[10] = 31;
v[11] = 37;
v[12] = 41;
v[13] = 43;
v[14] = 47;
v[15] = 53;
v[16] = 59;
v[17] = 61;
v[18] = 67;
v[19] = 71;
v[20] = 73;
v[21] = 79;
v[22] = 83;
v[23] = 89;
v[24] = 97;
v[25] = 101;
v[26] = 103;
v[27] = 107;
v[28] = 109;
v[29] = 113;
v[30] = 127;
v[31] = 131;
v[32] = 137;
v[33] = 139;
v[34] = 149;
v[35] = 151;
v[36] = 157;
v[37] = 163;
v[38] = 167;
v[39] = 173;
v[40] = 179;
v[41] = 181;
v[42] = 191;
v[43] = 193;
v[44] = 197;
v[45] = 199;
v[46] = 211;
v[47] = 223;
v[48] = 227;
v[49] = 229;
v[50] = 233;
v[51] = 239;
v[52] = 241;
v[53] = 251;
v[54] = 257;
v[55] = 263;
v[56] = 269;
v[57] = 271;
v[58] = 277;
v[59] = 281;
v[60] = 283;
v[61] = 293;
v[62] = 307;
v[63] = 311;
v[64] = 313;
v[65] = 317;
v[66] = 331;
v[67] = 337;
v[68] = 347;
v[69] = 349;
v[70] = 353;
v[71] = 359;
v[72] = 367;
v[73] = 373;
v[74] = 379;
v[75] = 383;
v[76] = 389;
v[77] = 397;
v[78] = 401;
v[79] = 409;
v[80] = 419;
v[81] = 421;
v[82] = 431;
v[83] = 433;
v[84] = 439;
v[85] = 443;
v[86] = 449;
v[87] = 457;
v[88] = 461;
v[89] = 463;
v[90] = 467;
v[91] = 479;
v[92] = 487;
v[93] = 491;
v[94] = 499;
v[95] = 503;
v[96] = 509;
v[97] = 521;
v[98] = 523;
v[99] = 541;
v[100] = 547;
v[101] = 557;
v[102] = 563;
v[103] = 569;
v[104] = 571;
v[105] = 577;
v[106] = 587;
v[107] = 593;
v[108] = 599;
v[109] = 601;
v[110] = 607;
v[111] = 613;
v[112] = 617;
v[113] = 619;
v[114] = 631;
v[115] = 641;
v[116] = 643;
v[117] = 647;
v[118] = 653;
v[119] = 659;
v[120] = 661;
v[121] = 673;
v[122] = 677;
v[123] = 683;
v[124] = 691;
v[125] = 701;
v[126] = 709;
v[127] = 719;
v[128] = 727;
v[129] = 733;
v[130] = 739;
v[131] = 743;
v[132] = 751;
v[133] = 757;
v[134] = 761;
v[135] = 769;
v[136] = 773;
v[137] = 787;
v[138] = 797;
v[139] = 809;
v[140] = 811;
v[141] = 821;
v[142] = 823;
v[143] = 827;
v[144] = 829;
v[145] = 839;
v[146] = 853;
v[147] = 857;
v[148] = 859;
v[149] = 863;
v[150] = 877;
v[151] = 881;
v[152] = 883;
v[153] = 887;
v[154] = 907;
v[155] = 911;
v[156] = 919;
v[157] = 929;
v[158] = 937;
v[159] = 941;
v[160] = 947;
v[161] = 953;
v[162] = 967;
v[163] = 971;
v[164] = 977;
v[165] = 983;
v[166] = 991;
v[167] = 997;
v[168] = 1009;
v[169] = 1013;
v[170] = 1019;
v[171] = 1021;
v[172] = 1031;
v[173] = 1033;
v[174] = 1039;
v[175] = 1049;
v[176] = 1051;
v[177] = 1061;
v[178] = 1063;
v[179] = 1069;
v[180] = 1087;
v[181] = 1091;
v[182] = 1093;
v[183] = 1097;
v[184] = 1103;
v[185] = 1109;
v[186] = 1117;
v[187] = 1123;
v[188] = 1129;
v[189] = 1151;
v[190] = 1153;
v[191] = 1163;
v[192] = 1171;
v[193] = 1181;
v[194] = 1187;
v[195] = 1193;
v[196] = 1201;
v[197] = 1213;
v[198] = 1217;
v[199] = 1223;
v[200] = 1229;
v[201] = 1231;
v[202] = 1237;
v[203] = 1249;
v[204] = 1259;
v[205] = 1277;
v[206] = 1279;
v[207] = 1283;
v[208] = 1289;
v[209] = 1291;
v[210] = 1297;
v[211] = 1301;
v[212] = 1303;
v[213] = 1307;
v[214] = 1319;
v[215] = 1321;
v[216] = 1327;
v[217] = 1361;
v[218] = 1367;
v[219] = 1373;
v[220] = 1381;
v[221] = 1399;
v[222] = 1409;
v[223] = 1423;
v[224] = 1427;
v[225] = 1429;
v[226] = 1433;
v[227] = 1439;
v[228] = 1447;
v[229] = 1451;
v[230] = 1453;
v[231] = 1459;
v[232] = 1471;
v[233] = 1481;
v[234] = 1483;
v[235] = 1487;
v[236] = 1489;
v[237] = 1493;
v[238] = 1499;
v[239] = 1511;
v[240] = 1523;
v[241] = 1531;
v[242] = 1543;
v[243] = 1549;
v[244] = 1553;
v[245] = 1559;
v[246] = 1567;
v[247] = 1571;
v[248] = 1579;
v[249] = 1583;
v[250] = 1597;
v[251] = 1601;
v[252] = 1607;
v[253] = 1609;
v[254] = 1613;
v[255] = 1619;
v[256] = 1621;
v[257] = 1627;
v[258] = 1637;
v[259] = 1657;
v[260] = 1663;
v[261] = 1667;
v[262] = 1669;
v[263] = 1693;
v[264] = 1697;
v[265] = 1699;
v[266] = 1709;
v[267] = 1721;
v[268] = 1723;
v[269] = 1733;
v[270] = 1741;
v[271] = 1747;
v[272] = 1753;
v[273] = 1759;
v[274] = 1777;
v[275] = 1783;
v[276] = 1787;
v[277] = 1789;
v[278] = 1801;
v[279] = 1811;
v[280] = 1823;
v[281] = 1831;
v[282] = 1847;
v[283] = 1861;
v[284] = 1867;
v[285] = 1871;
v[286] = 1873;
v[287] = 1877;
v[288] = 1879;
v[289] = 1889;
v[290] = 1901;
v[291] = 1907;
v[292] = 1913;
v[293] = 1931;
v[294] = 1933;
v[295] = 1949;
v[296] = 1951;
v[297] = 1973;
v[298] = 1979;
v[299] = 1987;
v[300] = 1993;
v[301] = 1997;
v[302] = 1999;
v[303] = 2003;
v[304] = 2011;
v[305] = 2017;
v[306] = 2027;
v[307] = 2029;
v[308] = 2039;
v[309] = 2053;
v[310] = 2063;
v[311] = 2069;
v[312] = 2081;
v[313] = 2083;
v[314] = 2087;
v[315] = 2089;
v[316] = 2099;
v[317] = 2111;
v[318] = 2113;
v[319] = 2129;
v[320] = 2131;
v[321] = 2137;
v[322] = 2141;
v[323] = 2143;
v[324] = 2153;
v[325] = 2161;
v[326] = 2179;
v[327] = 2203;
v[328] = 2207;
v[329] = 2213;
v[330] = 2221;
v[331] = 2237;
v[332] = 2239;
v[333] = 2243;
v[334] = 2251;
v[335] = 2267;
v[336] = 2269;
v[337] = 2273;
v[338] = 2281;
v[339] = 2287;
v[340] = 2293;
v[341] = 2297;
v[342] = 2309;
v[343] = 2311;
v[344] = 2333;
v[345] = 2339;
v[346] = 2341;
v[347] = 2347;
v[348] = 2351;
v[349] = 2357;
v[350] = 2371;
v[351] = 2377;
v[352] = 2381;
v[353] = 2383;
v[354] = 2389;
v[355] = 2393;
v[356] = 2399;
v[357] = 2411;
v[358] = 2417;
v[359] = 2423;
v[360] = 2437;
v[361] = 2441;
v[362] = 2447;
v[363] = 2459;
v[364] = 2467;
v[365] = 2473;
v[366] = 2477;
v[367] = 2503;
v[368] = 2521;
v[369] = 2531;
v[370] = 2539;
v[371] = 2543;
v[372] = 2549;
v[373] = 2551;
v[374] = 2557;
v[375] = 2579;
v[376] = 2591;
v[377] = 2593;
v[378] = 2609;
v[379] = 2617;
v[380] = 2621;
v[381] = 2633;
v[382] = 2647;
v[383] = 2657;
v[384] = 2659;
v[385] = 2663;
v[386] = 2671;
v[387] = 2677;
v[388] = 2683;
v[389] = 2687;
v[390] = 2689;
v[391] = 2693;
v[392] = 2699;
v[393] = 2707;
v[394] = 2711;
v[395] = 2713;
v[396] = 2719;
v[397] = 2729;
v[398] = 2731;
v[399] = 2741;
v[400] = 2749;
v[401] = 2753;
v[402] = 2767;
v[403] = 2777;
v[404] = 2789;
v[405] = 2791;
v[406] = 2797;
v[407] = 2801;
v[408] = 2803;
v[409] = 2819;
v[410] = 2833;
v[411] = 2837;
v[412] = 2843;
v[413] = 2851;
v[414] = 2857;
v[415] = 2861;
v[416] = 2879;
v[417] = 2887;
v[418] = 2897;
v[419] = 2903;
v[420] = 2909;
v[421] = 2917;
v[422] = 2927;
v[423] = 2939;
v[424] = 2953;
v[425] = 2957;
v[426] = 2963;
v[427] = 2969;
v[428] = 2971;
v[429] = 2999;
v[430] = 3001;
v[431] = 3011;
v[432] = 3019;
v[433] = 3023;
v[434] = 3037;
v[435] = 3041;
v[436] = 3049;
v[437] = 3061;
v[438] = 3067;
v[439] = 3079;
v[440] = 3083;
v[441] = 3089;
v[442] = 3109;
v[443] = 3119;
v[444] = 3121;
v[445] = 3137;
v[446] = 3163;
v[447] = 3167;
v[448] = 3169;
v[449] = 3181;
v[450] = 3187;
v[451] = 3191;
v[452] = 3203;
v[453] = 3209;
v[454] = 3217;
v[455] = 3221;
v[456] = 3229;
v[457] = 3251;
v[458] = 3253;
v[459] = 3257;
v[460] = 3259;
v[461] = 3271;
v[462] = 3299;
v[463] = 3301;
v[464] = 3307;
v[465] = 3313;
v[466] = 3319;
v[467] = 3323;
v[468] = 3329;
v[469] = 3331;
v[470] = 3343;
v[471] = 3347;
v[472] = 3359;
v[473] = 3361;
v[474] = 3371;
v[475] = 3373;
v[476] = 3389;
v[477] = 3391;
v[478] = 3407;
v[479] = 3413;
v[480] = 3433;
v[481] = 3449;
v[482] = 3457;
v[483] = 3461;
v[484] = 3463;
v[485] = 3467;
v[486] = 3469;
v[487] = 3491;
v[488] = 3499;
v[489] = 3511;
v[490] = 3517;
v[491] = 3527;
v[492] = 3529;
v[493] = 3533;
v[494] = 3539;
v[495] = 3541;
v[496] = 3547;
v[497] = 3557;
v[498] = 3559;
v[499] = 3571;
v[500] = 3581;
v[501] = 3583;
v[502] = 3593;
v[503] = 3607;
v[504] = 3613;
v[505] = 3617;
v[506] = 3623;
v[507] = 3631;
v[508] = 3637;
v[509] = 3643;
v[510] = 3659;
v[511] = 3671;
<org.apache.commons.math.primes.SmallPrimes: int[] PRIMES> = v;
v = <org.apache.commons.math.primes.SmallPrimes: int[] PRIMES>;
v = <org.apache.commons.math.primes.SmallPrimes: int[] PRIMES>;
v = lengthof v;
v = v - 1;
v = v[v];
<org.apache.commons.math.primes.SmallPrimes: int PRIMES_LAST> = v;
return;
}
}