Informatică, întrebare adresată de MadalinaMadutaa, 9 ani în urmă

Cerinţa
Să se scrie un program care citește două numere naturale a și b și determină câte numere prime sunt în intervalul închis determinat de a și b.

Date de intrare
Programul citește de la tastatură numerele a și b.

Date de ieşire
Programul afișează pe ecran numărul n, reprezentând numărul de numere prime din intervalul închis determinat de a și b.

Restricţii şi precizări
0< a,b <100000
numerele citite nu respectă obligatoriu relația a ≤ b
un număr natural este prim dacă are exact doi divizori distincți: 1 și el însuși.



Exemplu
Intrare

10 20
Ieșire

4
Explicație
în intervalul [10,20] sunt 4 numere prime: 11, 13, 17, 19.

Răspunsuri la întrebare

Răspuns de express
3
solutia 1) - fara functii

#include <bits/stdc++.h>
using namespace std;
int n, i, x, j, a, b, k;
bool prim;
int main()
{
    cin >> a >> b;
    if(a > b) swap(a, b);
    for (i = a; i <= b; i ++)
    {
        x = i;
        prim = true;
        if(x == 0 || x == 1) prim = false;
        for (j = 2; j * j <= x; j++)
            if (x % j == 0)
        {
            prim = false;
            break;
        }
        if (prim)
           k ++;
    }
    cout << k;
    return 0;
}
 solutia 2 ) - cu functie

#include <bits/stdc++.h>
using namespace std;
int n, i, a, b, k;
bool prim(int nr)
{
  for (int j = 2; j * j <= nr; j++)
            if (x % j == 0) return false;
  return true;
}
int main()
{
    cin >> a >> b;
    if(a > b) swap(a, b);
    for (i = a; i <= b; i ++)
        if (prim(i))   k ++;
    cout << k;
    return 0;
}
Alte întrebări interesante