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:

Riješeni zadaci    Index