Помогите с решением задачи в C++

01.01.2001

помогите с решением задачи в C++
Как заполнить массив первыми 30 простыми числами от 3

#define n 30
using namespace std;
int main()
{
int a[n],i,c,r,z=0;
for(i=0;i<=n;i++){
for(c=3;c<9999;c++){
for(r=c-1;r>1;r--){

if(c%r==0)break;
else {
if(c>z){
z=c;
a=c;
}
}

}
}
}
for(i=0;i<=n;i++)cout<<<" ";

cin.get();
}

и чето не фурычит

  • Простое число 2, вижу, в немилость попало.. . Ладно, обойдемся без него.. .

    #include
    int main(){
    int i,j,a[30],*p=a;
    for(i=3;p-a< 30;i+=2){for(j=3;j< i;j+=2)if(i% j==0)break;if(j==i)*p++=i;}
    for(j=0;a+j< p;j++)std::cout<< a[j]<< ' '; std::cout<<'\n'; std::cin.get();}

  • тупо итерироваться вверх (ну хотя бы по 2)
    для проверки на простоту использовать тест вильсона -- для первых 30 числе это будет довольно просто
  • а что "факториал"?

Вас заинтересует