413
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