C++
Liczbą pierwszą jest liczba, która ma tylko dwa podzielniki 1 i samą siebie.
Opracuj program który, wczytuje ze standardowego wejścia liczby (nie więcej jak 15000 i nie większych od 1000000000), i zapisuje wybrane z nich liczby pierwsze na standardowe wyjście.
Przykład
(Liczba w pierwszej linii wejścia (w tym przypadku 5) oznacza ilość podawanych do sprawdzenia liczb)

Dla danych
5
7
8
9
13
17

poprawny wynik
7
13
17

2

Odpowiedzi

2009-12-12T14:39:15+01:00
#include <iostream>
using namespace std;

// funkcja, ktora sprawdza, czy liczba n jest pierwsza
bool pierwsza(int n) {
if (n < 2) return false;
if (n ==2 || n == 3) return true;
if (n % 2 == 0) return false;
for (int i = 3; i*i <= n; i += 2)
if (n % i == 0) return false;
return true;
}

int main() {
int n;
cin >> n;

for (int i = 0; i < n; ++i) {
int x;
cin >> x;
if (pierwsza(x)) cout << x << "\n";
}
return 0;
}
2009-12-12T15:23:15+01:00
#include <iostream>
using namespace std;

//Wyznaczanie liczb pierwszych
bool first(int n)
{
if (n < 2)
return false;

if (n % 2 == 0)
return false;

if (n ==2 || n == 3)
return true;

for (int i = 3; i*i <= n; i += 2)
if (n % i == 0)
return false;

return true;
}

int main()
{
int n;
cout << "Podaj ile liczb chcesz wprowadzic: \n";
cin >> n;
int *tab;
tab = new int[n];

cout << "Podaj liczby:\n";
for(int i = 0; i < n; i++)
cin >> tab[i];

cout << "\nLiczby pierwsze z podanego zbioru:\n";
for(int i = 0; i < n; i++)
if(first(tab[i]))
cout << tab[i] << endl;

delete []tab;

cout << "\n";
system("pause");
return 0;
}