23.1.23010310. Učitavati brojeve i ispitivati da li su prosti pa takve množiti dok ne unesemo 3 prosta broja. Ispisati proizvod. Opis rješenja: Koriste se dvije For petlje. Traži se prost broj na više for (int y = x + 1; y < 1000; y++) i prost broj na niže for (int y = x - 1; y > 1; y--). (Vidi zadatak: Traženje prostih brojeva manjih od 1000) Po dobijanju prostih brojeva se izvodi provjera koji od njih je bliži učitanom broju. Listing programa:
/* 23010310 Učitavati brojeve i ispitivati da li su prosti pa takve množiti dok ne unesemo 3 prosta broja. Ispisati proizvod.*/
#include <stdio.h>
#include <stdbool.h>
int main()
{
bool prost; // pocetna vrijednost indikatora prostih brojeva
int x, i;
int br = 0; // broj prostih ucitanih brojeva
int pro3 = 1; // pocetna vrijednost proizvoda
double kor;
while (br< 3) { // provjera broja ucitanih prostih brojeva
prost = true; // pretpostavimo da je broj prost
printf("Ucitati broj: ");
scanf("%d", &x);
kor = sqrt(x); // korijen, manji broj testiranja
for (i = 2; i <= kor && prost == true; i++) // kreiramo umnožak svih brojeva do x
if (x % i == 0) // ako je broj x djeljiv sa brojem i ...
prost = false; // ...tada je broj složen
if (x==2)
prost=true;
if (prost == true) { // ako je indikator prost istinit ...
pro3 = pro3 * x ; // pomnozi priyvod
br++; // uvecaj brojac
printf(" Broj je prost. \n"); // ... tada: broj prost
}
else
printf(" Broj nije prost. \n"); // ... tada: broj prost
}
printf("Proizvod 3 prosta broja %d", pro3); // ... tada: broj prost
return 0;
}
Ispis na ekranu:
|
|||||||
|