Denunciar Eu criei um programa pra calcular números primos que utiliza vetores, mas não consigo armazena mais de, exatamente, 520591 números. Como posso fazer para aumentar meu vetor? em Grupo de Estudos Postado Março 22, 2017 #include <iostream> #include <cmath> using namespace std; int main() { int x,p,n,i,j; cout << "2\n3\n5\n7\n"; n=100000; // escrever no próprio programa, antes da execução, quantos numero primos serão calculados. Números acima de 520591 dao ERRO. Por que isso e como aumentar // a capacidade???? int a[n]; a[0] = 2; a[1] = 3; a[2] = 5; a[3] = 7; x = 11; i = 4; j = 1; p = a[j]; while (p <= sqrt(x) && i <= n-1) { if (x%p==0) { x += 2; j = 1; p = a[j]; } else { if (a[j+1] > sqrt(x)) { a=x; cout << a << endl; x += 2; j = 1; p = a[j]; i++; } else j++; p = a[j]; } } return 0; }
Eu criei um programa pra calcular números primos que utiliza vetores, mas não consigo armazena mais de, exatamente, 520591 números. Como posso fazer para aumentar meu vetor?
em Grupo de Estudos
Postado
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int x,p,n,i,j;
cout << "2\n3\n5\n7\n";
n=100000; // escrever no próprio programa, antes da execução, quantos numero primos serão calculados. Números acima de 520591 dao ERRO. Por que isso e como aumentar // a capacidade????
int a[n];
a[0] = 2;
a[1] = 3;
a[2] = 5;
a[3] = 7;
x = 11;
i = 4;
j = 1;
p = a[j];
while (p <= sqrt(x) && i <= n-1)
{
if (x%p==0)
{
x += 2;
j = 1;
p = a[j];
}
else
{
if (a[j+1] > sqrt(x))
{
a=x;
cout << a << endl;
x += 2;
j = 1;
p = a[j];
i++;
}
else
j++;
p = a[j];
}
}
return 0;
}