Witam!
Napisalem sobie taki malutki program obiektowo pokazujacy "n" liczb pierwszych. Nie wiem czemu po kilkukrotnym wpisaniu liczby "n" program mi sie wysypuje. Czasem za 2 razem a czasem za 10, nie ma konkretnej reguly. Podejrzewam, ze jest to cos ze zlym zarzadzaniem pamiecia. Prosze bardzo o pomoc. Z gory wielkie dzieki!
Main:
#include <iostream>
#include "header.h"
int main()
{
int n=0;
std::cout<<"Podaj ile liczb pierwszych chcesz wyswielic?\n";
std::cout<<"Wcisnij q zeby zakonczyc!\n";
while(std::cin>>n)
{
show_prime(n);
std::cout<<"Podaj ile liczb pierwszych chcesz wyswielic?\n";
}
return 0;
}
Definicja:
#include <iostream>
#include "header.h"
void show_prime(int n)
{
int *prime=new int[n];
prime[0]=2;
int liczby=0;
for(int i=2; i<=10*n; ++i)
{
bool t=true;
for(int l=0; l<=liczby; ++l)
{
if(i%prime[l]==0)
{
t=false;
break;
}
else if(t==true && l==liczby)
{
liczby++;
prime[liczby]=i;
std::cout<<"PRIME: "<<i<<std::endl;
}
}
if(liczby==n)
break;
}
delete[] prime;
}
Header.h
void show_prime(int n);