T=$(mktemp) cat <<'EOF' >$T function f(a,b, c){ while(b!=Z){c=rshift(and(a,b),O);a=xor(a,b);b=c}return a } function g(n){ for(i=T;i<=int(sqrt(n));i=f(i,O))if(n%i==Z)return Z;return n!=O } BEGIN{ Z=length("");O=length("_");T=length("__") } { print g($0)?"YES":"NO" } EOF gawk $'\x2d'f $T