325
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
.
#include <bits/stdc++.h> using namespace std; int prim(int n); int main () { int a,b,cnt=0; cin >> a >> b; if (a > b) { int c=a; a=b; b=c; } for (int i = a ; i <= b; ++i) { if (prim(i)) cnt++; } cout << cnt; return 0; } int prim(int n) { int cnt=0; for (int i = 1; i * i <= n; ++i) { if (n%i==0) cnt+=2; if (i*i==n) cnt--; } if (cnt==2) return 1; else return 0; }
Comentarii