\\ --------------------------------------------------------------- \\ This PARI/GP script demonstrates that N-k factors for k=0..9 \\ and proves primality of all factors (APRCL test from IsPrime) \\ --------------------------------------------------------------- \\ Ensure enough stack for primality proving... allocatemem(20*10^6) \\ Subroutine used to print ~# decimal digits... digits(n)= { return(1 + floor(log(n)/log(10)+10e-25) ); } \\ Subroutine used to verify primality of factors checkprimes(pset)= { for(i=1,length(pset), print1("Testing prime #", i, "/",length(pset),"\t ", digits(pset[i])," digit(s)...\t"); if(!isprime(pset[i], 2), print("FOUND NON-PRIME: ", pset[i]), print("VERIFIED!"); ); ); print("Finished checking primes."); } \\ Subroutine used to verify a number factors completely with the given factors... verifyCompletelyFactors(lbl, n, pset)= { for(i=1,length(pset), while(n%pset[i]==0, n=n/pset[i]); ); if(n==1, print(lbl, " completely factors.")); if(n!=1, print(lbl, " DID NOT COMPLETELY FACTOR")); } \\ Define starting N such that N-k factors for k=0..9 u = 2*10^28 + 2204662; N = 256*u^18 - 1536*u^15 + 3520*u^12 - 3840*u^9 + 2020*u^6 - 456*u^3 + 36; \\ List of prime factors needed for complete factorization... factors = [\ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 41, 67, 73, 83, 127, 149, 191, 239, 251, 307, 331, 347, 449, 499, 1187, 2927, 3257, 4099, 5413, 5519, 9547, 9697, 15073, 31189, 41641, 164881, 180473, 257987, 1401203, 1531843, 1645601, 2124821, 2894929, 11068417, 11354621, 13246099, 18811567, 113522593, 116110381, 245823731, 250277089, 519846829, 831103267, 1930288121, 5901418121, 13445407369, 30578866463, 111382910297, 181158721739, 323256465041, 442781686703, 446924830771, 2689200539563, 14734834751929, 1248860046909467, 3271127680535279, 6263540405958799, 90131193051180529, \ 1714352630976062017, 14554641825673780279, 37333369881660386459, 233437103518022038867, 1730305848698194550273, 9303255826395894981169, 179187138283689054518803, 472514066396281571944993, 1867760574562610834993963, 1488459549869389482650623003, 2100726463287606221888948966791,68696646377151940356904991848691, 826402995956294226375591690515963, 8565397930808568846216431951262151, 741479532797940551572286509299641323, 34830720932848958310122536067257006458277, 81654641695766717900650891421256077306657, 186826766724947388177434694180263630044871, 216432437109204897481725950423278756761076506433, \ 207058905269150904115025146899823757889865604599393, 59769847830356822480851338650284237240697374480196117, 97584776774823127592117147231031959014393755760072393, 300623037354997684760214480023188666593095587125093642757, 8673383825406446118969387417345665128610749211198444515481, 38250750512834751554907456243913073019849245258367375835003, 17205979087403906335627860980115911179419243870279319985508971, 4050624313071804187996566630261827216555059616139796924436663460527, 12431506263961695057536834021915617377667459367414347205489562416699, \ 20007803893063496839861142546375474591403195655644157207244713104487, 1083419113812114581692806946928012991603417612837816992039548006438463, 95925605271645469122449575886666011652340523511711773270825209659498635468887476993851227773969941116968383660751, 136522321437341357578982495960004506241249989563480223954886877392820440017871099119741773149006344599842089018411, 5936198519764907325568788492837144034143764224325971823769414076715761951476514609129427797957422126713145651766928219379641251620723614216506369, \ 3829797396593923020158058852535774081399736913920378739809259597238377868603562116552089648836044163530241297141741130983038474191260511793881126508518363309739, 103023928716175825862864924563274619099593728159866663736091990211978293021566631081305017858381298976256350246612433187999055255757621632033668070306853022509953, 2359447004608294930877136571811981566820276927752364320206451612966434423077370369933866976913391759307946321794763605121319860302775451881015341532450655411517502262201, 918030371532084486823140149211743092389268185858411703840428240548268686265325464850510544432796821911496795647262073608062725901351129418695163782977208778237112427886380213, \ 8308098770575618563278140349708230566973798610696444827765518568173848312637469276391944462875073418410679255997789214467944099150573616414945633512750491792050045360588460558085423, 1235343327543615764457795495590772030447575628146102891785176718375548949498716110403276999113946325913624500215626384579131612707424323473497173390937204598816818971806525217501534898451, 5268468875101207966503221637564275430828482281288806272352342013338174338145138429373064209988535633949696733331592548352583494113390219823457115218230511678697789109397011263873411779303893037684709359210406473, 3533742054174816074881641068866923118609347812218930248817864339645077320213576784897215431571348169712407642330812093231866486812662973436596195813720944828559128120676691802790771651955258619892556423839559184398326894169807919891967869197534212067400868464481337615037718331079392635959598394921, \ 43778223112892451569864188936071609886439580867801305260814535751043759445135226017605038059205206222938075118226512125698742921604813012867568950280287564892654933848759437580955004560241577043651080237642470767694633379466907843523463211758931466512079866679115169383641194815890749469256483022750032129109031793983093916727712646977883, 2151953415357225698964282160486509485264336350891112496597807860377185054805234495987492595633335266277583081317369224045073050759712115846110320892263072031072847796714205676421246876890234918724132500238662730034678472374760204459528127767324287900074006319731913257392391729679328859771562035594054247759739213315260886398436207872862680844626791503430403929173253314816564002215628476202419681466954032827176841155877202639030247778295449652410771319589993399169465439206774413853606991037234639, \ 2631717298008532192790832990034535556813574769664409071183825779314169698037495527440638647139039277805131517154948843436857619325391050004548895953622776917892961285528198437467279508363576608399363052094429507679778932187332997224153362852499655144435994126794145349468358392133478835436758010272457724974245396572931516664957217617017904253394203040072589203906545705406501712574541145995188298572565798773381946146430459742783422409726294938092063433507938131911712143222578667067868548521720277]; \\ Verify primality of factors... checkprimes(factors); \\ Verify we can completely factor N-k for k=0..9 using these prime factors... for(k=0,9,verifyCompletelyFactors(Str("N-",k), N-k, factors));