Afisati toate numerele cuprinse intre a si b care au un numar prim de divizori
c++
rezolvare completa
cls a IX a
Răspunsuri la întrebare
Răspuns de
2
O sa facem un for prin care trecem prin numerele din interval.Pentru fiecare numar ii numaram divizorii.Apoi ne intrebam daca numarul divizorilor este un numar prim(o sa facem test de nr prim),la sfarsit daca nr este prim il afisam.
#include <iostream>
using namespace std;
int main()
{
int i,j,a,b,k,c;
cin>>a>>b;
for(i=a;i<=b;i++){
k=0;
for(j=1;j<=i;j++)
if(i%j==0)
k=k+1;
c=0;
for(j=1;j<=k;j++)
if(k%j==0)
c=c+1;
if(c==2)
cout<<i<<' ';
}
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int i,j,a,b,k,c;
cin>>a>>b;
for(i=a;i<=b;i++){
k=0;
for(j=1;j<=i;j++)
if(i%j==0)
k=k+1;
c=0;
for(j=1;j<=k;j++)
if(k%j==0)
c=c+1;
if(c==2)
cout<<i<<' ';
}
return 0;
}
Răspuns de
1
Iti prezint si eu o varianta mai eficienta (daca stii vectori)
Marcam divizorii fiecarui numar pana la b. Ii marcam din 1 in 1, din 2 in 2, din 3 in 3...etc. Numerele care au un numar prim de divizori au fost marcate doar de 1 si de numarul respectiv deci au fost marcate de 2 ori.
#include <iostream>
using namespace std;
int main() {
int a, b, nr = 0;
cin >> a >> b;
int v[b + 1];
for (int i = 0; i <= b + 1; i++)
v[i] = 0;
for(int i = 1; i <= b; i++)
for (int j = i; j <= b; j += i)
v[j]++;
for (int i = a; i <= b; i++) {
if (v[v[i]] == 2)
nr++;
}
cout << nr;
return 0;
}
Marcam divizorii fiecarui numar pana la b. Ii marcam din 1 in 1, din 2 in 2, din 3 in 3...etc. Numerele care au un numar prim de divizori au fost marcate doar de 1 si de numarul respectiv deci au fost marcate de 2 ori.
#include <iostream>
using namespace std;
int main() {
int a, b, nr = 0;
cin >> a >> b;
int v[b + 1];
for (int i = 0; i <= b + 1; i++)
v[i] = 0;
for(int i = 1; i <= b; i++)
for (int j = i; j <= b; j += i)
v[j]++;
for (int i = a; i <= b; i++) {
if (v[v[i]] == 2)
nr++;
}
cout << nr;
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Istorie,
9 ani în urmă
Matematică,
9 ani în urmă