Если N небольшое (скажем, не больше 100000), то можно так:
char *A=new char[N+1];
for(int n=1;n<=N;n++){
int a=0;
for(int b=0;b<n;b++) a=(10*a+1)%n;
A[n]=!a;
}
При больших N нужно пользоваться аналогом быстрого возведения в степень.
Получается, что кроме 3 и 37, в числах оказываются такие простые делители, как 163, 757, 1999, 9397... Не понимаю, откуда они берутся.
UPD.
757 - делитель 10^27-1
163 и 9397 - делители 10^81-1
1999 - делитель 10^999-1