Wątek przeniesiony 2015-02-17 12:14 z C/C++ przez ŁF.

Zapisywanie wygenerowanych liczb pierwszych do pliku

0

Witam serdecznie.

To mój pierwszy wpis, więc jeśli popełnię jakieś błędy z góry przepraszam.

Potrzebuję pomocy z moim programem który jak w temacie dotyczy liczb pierwszych.
Wypisuje on liczby pierwsze z podanego zakresu, chciałbym aby podane liczby (wszystkie lub tylko dwie) zapisywał do pliku.

#include <iostream>
using namespace std;

int main()
{
   int dolny_zakres =1000, gorny_zakres =2000, liczby, czy_nie_jest_pierwsza;

  
   if (gorny_zakres < 2)
   {
      cout << "Brak l. pierwszych..";
                exit(0);
   }
   cout << "Oto liczby pierwsze z podanego przedzialu: " << endl;
   if (dolny_zakres == 1)
      dolny_zakres += 2;
   if (dolny_zakres % 2 == 0)
      dolny_zakres++;
   for (int i = dolny_zakres; i <= gorny_zakres; i = i + 2)
   {
      czy_nie_jest_pierwsza = 0;
      for (liczby = 2; liczby <= i / 2; liczby++)
      {
         if ((i % liczby) == 0)
         {
            czy_nie_jest_pierwsza = 1;
            break;
         }
      }
      if (czy_nie_jest_pierwsza == 0)
         cout << i << endl;
   }
   cin.get();
   cin.get();
   return 0;
} 

Z góry dziękuję za pomoc.

0

No a jakie jest pytanie?

0

Poczytaj sobie o Sicie Eratostelesa, mnóstwo gotowców na sieci

0
 std::fstream fs ("test.txt", std::fstream::in | std::fstream::out);

  fs << value;

  fs.close();

http://www.cplusplus.com/reference/fstream/fstream/ a tutaj dokumentacja :)

0

Twoje liczby powinny być znane w czasie kompilacji. Po uruchomieniu aplikacji matematyka zbytnio się nie zmienia.

0

Chcę zrobić program do kodowania RSA i to by była jedna część.Ten program wybrał by "p" i "q" i zapisał do pliku, a drugi program wczytał by te wartości i zakodował przykładową wiadomość.Pytanie moje brzmi czy da rade zapisać tylko dwie liczby z zakresu czy trzeba napisać nowy program.

0

Dlaczego w ogóle robisz z tego dwa odrębne programy? To będzie cholernie niewydajne i skomplikowane.

0

Program ma działać na dużych liczbach pierwszych. Dlatego napisałem program który takie liczby generuje, i chciałbym żeby zapisywał je do pliku. W drugim programie kodującym zrobił bym wczytanie i tylko musiał bym podać tekst do zakodowane.

0

Spróbuj do komunikatów zastosować cerr a do wyniku cout. Wtedy nie musisz się bawić plikami.

Odpalenie pod Linux:
myprog >wynik 2>errorfile.txt

Przykładowy kod:
http://www.cplusplus.com/forum/beginner/30783/

0

Ale chcesz od razu wszystkie liczby pierwsze od razu zapisywać do pliku, czy najpierw wylosowane wkładać do tablicy a następnie całą wrzucić do pliku? Btw, pisz proceduralnie a potem wywołuj funkcję w mainie, przyda się gdy zajdzie potrzeba dzielenia kodu na większe fragmenty, pozdro.

1 użytkowników online, w tym zalogowanych: 0, gości: 1