Я пытаюсь сделать Удивительная Prime Series (APS), в котором есть вектор myvector myvector [0] = myvector [1] = 0Почему мой код дает Runtime Error?
При п> 1, myvector [п] = myvector [п - 1] + f (n), где f (n) - наименьший простой множитель n.
ВХОД 3 (Нет. Тестов)
2
3
4
ВЫВОД
2
5
7
#include<iostream>
#include<math.h>
#include<vector>
using namespace std;
bool isPrime(int p)
{
int c=sqrt(p);
if(c==1)
{
return true;
}
else
{
for(int i=2;i<=c;i++)
{if(p%i==0)
{return false;}
else
{return true;}
}
}
}
int func(int n1)
{
if(n1%2==0)
{
return 2;
}
else
{
if(isPrime(n1)==true)
{
return n1;
}
else
{
int c1= sqrt(n1);
for(int i=2;i<=c1;i++)
{
if(n1%i==0 && isPrime(i)==true)
{
return i;
}
}
}
}
}
main()
{
int t;
std::vector<int> myvector;
myvector[0]=myvector[1]=0;
while(t--)
{
int n;
cin>>n;
while(n>1)
{
myvector[n]=myvector[n-1]+func(n);
cout<<myvector[n]<<endl;
}
}
}
Ошибка _What_ - это ваш код? – emlai
Он дает ошибку времени выполнения, поэтому не отображается на экране консоли –
t не имеет значения инициализации и доступа к вектору через индекс, который вам нужен для std :: vector myvector (10); // 10 нулевых инициализированных элементов –
Sigstop