Musi byc zrobione w programie c++
1.Napisz program, który wczytuje pary liczb tak długo, aż użytkownik poda dwa zera, wysyła je (kolejno) do funkcji, która zwraca informację, czy mniejsza z nich jest podzielnikiem większej.
2.Wygeneruj podaną przez użytkownika liczbę liczb losowych, wypisz je i podziel na 2 tablice - liczb pierwszych i złożonych. Wypisz te tablice.

Uwaga: sprawdzenie czy liczba jest pierwsza ma być zrealizowane w funkcji

1

Odpowiedzi

2009-12-14T19:47:28+01:00
Program 1:

#include <iostream>
using namespace std;
bool czy_podzielnik(int a, int b) {
int c=a, d=b;
if (c>d) {c=b; d=b; }
// teraz wiemy, ze c <= d
return d % c == 0;
}
int main() {
int a, b;
do {
cin >> a >> b;
if (a==0 && b==0) break; // koniec
czy_podzielnik(a,b);
} while (true);
return 0;
}


Program 2:
#include <vector>
#include <cstdlib>
#include <iostream>
#include <time.h>
bool pierwsza(int n) {
if (n<2) return false;
if (n==2) return true;
for (int i=3; i<n; i+=2) {
if (n % i == 0) return false;
}
return true;
}
int main() {
srand(time(NULL));
int n;
cin >> n;
vector<int> a, b;
for (int i=0; i<n; ++i) {
int n = rand();
if (pierwsza(n))
a.push_back(n);
else
b.push_back(n);
}
cout<<"Pierwsze: ";
for (int i=0; i<a.size(); ++i) cout << a[i] << " ";
cout << "\n";

cout<<"Nie pierwsze: ";
for (int i=0; i<b.size(); ++i) cout << b[i] << " ";
cout << "\n";

return 0;
}