Nie wiem jak zapisać wyniki do pliku, mój kod wygląda tak:
#include <iostream>
#include <fstream>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
int i, j, zakres = 1000;
float b;
int tabliczka[10000] = {0};
bool tab[10000];
int tablica[500] = {0};
int tmp = 0;
// wczytywanie liczb z pliku...
ifstream liczby("liczby.txt");
if (!liczby)
{
cout << "Nie mozna otworzyc pliku";
getchar();
return 1;
}
while (!liczby.eof())
liczby >> tablica[tmp++];
liczby.close();
b = sqrt((float)zakres);
for (i=2; i<zakres+1; i++)
tab[i] = true;
for (i=2; i<=b; i++)
if (tab[i]!=false)
for (j=i+i; j<zakres+1; j=j+i)
tab[j] = false;
ifstream byk("wynik.txt"); // utworzenie pliku do zapisania wyników
for (i=2; i<zakres+1; i++)
if (tab[i]!=false)
tabliczka[i] = i*i;
for (i=0; i<10000; i++)
if (tabliczka[i]!=0 || tabliczka[i]==tablica[i] || tablica[i]!=0) // nie wiem czy dobrze zapisane
byk << tabliczka[i] << endl; // nie wiem jak zapisać do utowrzonego pliku dane
byk.close();
cin.ignore();
getchar();
return 0;
}
Plik z liczbami jakich chce użyć http://www.nh-renewal.yoyo.pl/liczby.txt
Jest to program na zadanie maturalne o treści:
Liczba pierwsza to liczba naturalna wieksza od 1, która ma dokladnie
dwa dzielniki naturalne: 1 i samą siebie
Przykłady liczb pierwszych:
7
11
29
Liczba 21 nie jest liczba pierwsza poniewaz oprocz 1 i 21 jej
dzielnikami sa takze 3 i 7.
W pliku o nazwie liczby.txt umieszczono w kolejnych wierszach
500 liczb calkowitych dodatnich, po jednej w wierszu, z ktorych
kazda liczba ma co najwyzej 6 cyfr. Napisz program za pomoca
ktrorego otrzymasz te liczby z pliku liczby.xtt ktore sa kwadratami
liczb pierwszych. Na przykład liczba 49 jest kwadratem
liczby pierwszej 49=7*7. Wyniki zapisz w pliku zad_5. Twoj program
powinien dzialac poprawnie rowniez wtedy gdy plik liczby.txt bedzie
zawierał 500 innych liczb calkowitych dodatnich, o co najwyzej
6 cyfrach w osobnym wierszu.