The C program source:
v,i,j,k,l,s,a[99];
main()
{
	for(scanf("%d",&s);*a-s;v=a[j*=v]-a[i],k=i<s,j+=(v=j<s&&(!k&&!!printf(2+"\n\n%c"-(!l<<!j)," #Q"[l^v?(l^j)&1:2])&&++l||a[i]<s&&v&&v-i+j&&v+i-j))&&!(l%=s),v||(i==j?a[i+=k]=0:++a[i])>=s*k&&++a[--i])
		;
}

This program will solve the 8 Queens problem for any size board from 4 to 99 (but larger numbers take a long time). Here is some sample output:
16
Q# # # # # # # #
# Q # # # # # #
 # #Q# # # # # #
#Q# # # # # # #
 # # # # # #Q# #
# # # # Q # # #
 # # # # # # Q #
# # # # # #Q# #
 # # # # # # #Q#
# # #Q# # # # #
 # # # # # # # Q
# # # Q # # # #
 # Q # # # # # #
# # # # # Q # #
 # # # Q # # # #
# # # # #Q# # #  

Q# # # # # # # #
# Q # # # # # #
 # #Q# # # # # #
# # # Q # # # #
 # # # # #Q# # #
# # # # # # # Q
 # # # # # Q # #
# # # # # # # #Q
 # # # # # #Q# #
#Q# # # # # # #
 # # Q # # # # #
# # # #Q# # # #
 # # # # Q # # #
# #Q# # # # # #
 # # # # # # Q #
# # # # Q # # #