PDA

Zobacz pełną wersję : Prosze pomozcie program w DEV C++ nie dziala :D



schizmen
28-01-08, 17:02
jak juz mowilem programik w devie jest napisany :]
i wyskakuja bledy :/
mysle ze to wina okrojonej biblioteki conio
jak ktos ma pomysl na poprawienie to bym bardzo prosil o pomoc ^^
aha i prosil bym o dopisanie zeby zapisywal program liczby pierwsze do pliku

#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <fstream.h>


using namespace std;

int main(void)
{
char podzielna; //0 - liczba jest niepodzielna; 1 - podzielna
int lpier; //Ile lieczb pierwszych?
unsigned long start,liczba;
int znalezionych=0;
long dzielnik;

clrscr();
cout << "Podaj, ile liczb pierwszych ma znalezc program (0=wszystkie): ";
cin >> lpier;
cout << "Podaj, od jakiej liczby zaczac szukac: ";
cin >> start;
cout << "
Liczby pierwsze:
";

for (liczba=start;liczba<=4294967294.0;liczba++)
{
gotoxy(1,wherey());
cout << "Badanie liczby "<<liczba<<"...";

//Badanie podzielnosci:
podzielna=0;
for (dzielnik=2;dzielnik<=liczba/2;dzielnik++)
{
if (liczba % dzielnik == 0)
{
podzielna=1;
break;
}
}

if (podzielna==0)
{
znalezionych++;
gotoxy(1,wherey());
cout << znalezionych << ". " << liczba<< " " << endl;
}
if (znalezionych==lpier)
{
cout << "Znaleziono wszystkie najmniejsze " << lpier << " liczby pierwsze wieksze od "<<start-1;
break;
}
}
if (liczba==4294967295.0)
cout << "Nie potrafie znalezc wiecej liczb pierwszych";
getch();


return 0;

}

polakko
05-02-08, 14:56
Witam.
Użyty algorytm nie jest specjalnie skomplikowany ani efektywny (po co sprawdzasz w ogóle liczby parzyste?), ale będzie działać. Problemem przy kompilowaniu tego programu w DevC będą typowo Borlandowskie funkcje z bibilioteki conio tj: gotoxy, wherey, clrscr. Służą one do przemieszczania kursora po oknie konsoli i używanie ich nie jest specjalnie potrzebne w takich programach czysto obliczeniowych. Usuń linijki zawierające te funkcje i da się skompilować.

Plushy
11-02-08, 21:47
Obowiązującym algorytm jest chyba http://pl.wikipedia.org/wiki/Sito_Eratostenesa

Ten którego użyłeś jest raczej...Nie efektywny.