prob200(N)= { c = 0; default(primelimit,100000000); squbes = listcreate(10000); forprime (i=2,N, maxnext = i - 1; if (length(squbes) >= 200 && (i^2 > (squbes[200] / 4)), \\ can't get any better than this quit; ); if (maxnext > 200, maxnext = 200); forprime (j=2,maxnext, x = i^2 * j^3; if ((length(squbes) <= 200 || x < squbes[200]), xStr = Vec(Strtex(x)); for (z = 1, length(xStr) - 2, if (xStr[z] == "2", if (xStr[z+1] == "0", if (xStr[z+2] == "0", primefound = 0; for (m=1, length(xStr), for (n=0, 9, yStr = xStr; if (m != 1 || n != 0, yStr[m] = Strtex(n); y = eval(concat(yStr)); if (isprime(y), primefound = 1; break; ); ); ); if (primefound == 1, break); ); if (primefound == 0, c++; print1 (c); print1 (": "); print1 (x); print1 (" ["); print1 (i); print1 (" : "); print1 (j); print ("]"); listput(squbes,x); listsort(squbes,1); if (length(squbes) >= 200, print1(" --> "); print(squbes[200]); ); ); ); ); ); ); x = j^2 * i^3; xStr = Vec(Strtex(x)); for (z = 1, length(xStr) - 2, if (xStr[z] == "2", if (xStr[z+1] == "0", if (xStr[z+2] == "0", primefound = 0; for (m=1, length(xStr), for (n=0, 9, yStr = xStr; if (m != 1 || n != 0, yStr[m] = Strtex(n); y = eval(concat(yStr)); if (isprime(y), primefound = 1; break; ); ); ); if (primefound == 1, break); ); if (primefound == 0, c++; print1 (c); print1 (": "); print1 (x); print1 (" ["); print1 (i); print1 (" : "); print1 (j); print ("]"); listput(squbes,x); listsort(squbes,1); if (length(squbes) >= 200, print1(" --> "); print(squbes[200]); ); ); ); ); ); ); ); ); ); }