Every time I see a "puzzle" in a programmer ad, I feel they are not getting the desired effect. The only effect they should want is to get the ad noticed. They should not want the effect of weeding out potential applicants that simply don't want to invest the time to solve the puzzle. If its for a company that you know you want to work for, maybe you'll invest the time. But for a startup you don't know about, its asking potential applicants to invest in an unknown.