upto(n) = { my(res = List(), target = 2, last1 = 25); forfactored(i = 26, n, if(bigomega(i[2]) == 2, r = i[1]%6; if(r == target, if(target == 5, listput(res, last1); target = 1 , if(target == 1, last1 = i[1]; ); target++; ) , if(r == 1, last1 = i[1]; target = 2 , target = 1 ) ) ) ); if(#res > 0 && res[#res] != last1 && is(last1), listput(res, last1) ); res } is(n) = { if(n%6 != 1 || bigomega(n) != 2, return(0) ); my(target = 2); for(i = n + 1, oo, if(bigomega(i) == 2, if(i%6 == target, if(target == 5, return(1) , target++ ) , return(0) ) ) ) }