👤

Buna Seara. Pe campion.edu.ro uneori imi da eroarea Killed by signal 9. Nu inteleg care este eroarea.
Am probleme cu acest cod:

#include
#include
#include
using namespace std;
unsigned long long int x,y,i,j,t=0,b=0,a[1000000],cnt=2,produs=1;
unsigned long long int pf(unsigned long long int n)
{
cnt=2;
b=0;
produs=1;
while(n%2==0)
{
b++;
a[b]=2;
n/=2;
}
for(i=3;i<=sqrt(n);i=i+2)
while (n%i==0)
{
b++;
a[b]=i;
n/=i;
}
if(n>2)
{
b++;
a[b]=n;
}
for(i=1;i<=b;i++)
{
if(a[i]==a[i+1])
{
cnt++;
}
else
{
produs*=cnt;
cnt=2;
}
}
if(produs==14)t++;
return 0;
}
int main()
{
ifstream fin("paisprezece.in");
ofstream fout("paisprezece.out");
fin>>x>>y;
for(j=x;j<=y;j++)pf(j);
fout< return 0;
}

Si acest :

#include
#include
#include
using namespace std;
unsigned long long int n,p,s[200005],i,v[200005],go,j,x[200005];
int main()
{
ifstream fin;
ofstream fout;
fin.open("reconst.in");
fin>>n>>p;
for(i=1;i<=n;i++)fin>>s[i];
fin.close();
for(i=1;i<=n;i++)
{
for(j=1;;j++)
{
go=pow(p,j);
if(go>n-i+1)break;
}
x[i]=pow(p,j-1);
}
v[n]=s[n];
for(i=n-1;i>=1;i--)
{
for(j=i+1;j<=i+x[i]-1;j++)
{
s[i]-=v[j];
}
v[i]=s[i];
}
fout.open("reconst.out");
for(i=1;i<=n;i++)fout< fout.close();
return 0;
}

Ajutatiam va rog prin schimbarea codurilor sau prin mai bine explicarea erorii mersi


Răspuns :

Eu ala de pe edu l-am facut asa:
Vezi imaginea DACTYLS

#include <iostream>

#include <fstream>

#include <cmath>

#define MAX 1000000


using namespace std;


void prim(int N,int w[78500]){

//Implementare eficienta pentru salvarea numerelor prime pana la val n in w

//Nu am sa scriu aici rezolvarea acesteia pentru a ii lasa pe cei care mai doresc sa lucreze la problema sa se gandeasca la ea

//Cine doreste sa stie si aceasta parte imi poate trimite msj si ii voi lasa tot codul sursa

}


int main()

{

    ifstream fin("paisprezece.in");

    ofstream fout("paisprezece.out");

    int n,m,nr=0,v[20]={2,3,5,7,11,13,17,19},save,w[78500],start = 1;

    w[0]=2;

    prim(MAX,w);

    fin>>n>>m;

    if(pow(2,13)>=n && pow(2,13)<=m) nr++;

    if(pow(3,13)>=n && pow(3,13)<=m) nr++;

    for(int i=0;i<=7;i++){

        save = pow(v[i],6);

        if(save>m)

            i = 8;

        else {

            for(int j=start;j<=78497;j++){

                if (w[j]*save > m) break;

                else if(w[j]*save >=n && i!=j) nr++;

            }

            start = 0;

        }

    }

    fout << nr;

    fin.close();

    fout.close();

    return 0;

}

Asta este rezolvarea mea pentru a lua 100 puncte pe campion. Tot ce mai trebuie sa faci este sa creezi prim(n,w) care sa iti salveze in vectorul w primele n numere prime!

Sper ca te-am ajutat. Succes!