PROBLEME DE INFORMATICĂ - CLASA 9
REZOLVATI URMATOARELE 2 PROBLEME PENTRU 10 PUNCTE !
!! ATENȚIE !! REZOLVATI IN PSEUDOCOD CELE 2 PROBLEME !!!!
1) Se dă de la tastatură un număr întreg n. să se tipărească numerele prime mai mici sau egale decât n.
ex : n = 10
nr. prime mai mici sau egale cu 10 sunt 2, 3, 5 și 7
2) Se dau 2 numere reale a și b. Să se tipărească media aritmetică a numerelor prime din intervalul [a,b].
exemplu : a = 4 , b = 15
nr. prime din [ 4 , 15 ] sunt : 5 , 7 , 11 , 13 media aritmetică: 36 : 4 = 9
Răspunsuri la întrebare
1)
citeste n;
pentru i=2, i<=n,i++{
k=0;
pentru d=2,d<=i/2,d++{
daca i % d = 0 atunci k = 1, d = i / 2;
}
daca k=0 atunci scrie i , " ";
}
2)
citeste a , b;
s=0, k=0;
pentru i=a, i<=b, i++{
ok=0;
pentru d=2,d<=i/2,d++{
daca i % d = 0 atunci ok=1, d=i/2;
}
daca ok==0 atunci{
k++;
s=s+i;
}
}
scrie s/k;
Sper ca e bine scris in pseudocod ca nu am mai scris asa de un an, dar daca ai nevoie de ajutor pentru a te orienta ai mai jos problemele si in c++ =))
1)
#include <iostream>
using namespace std;
int main() {
int n, k;
cin >> n;
for (int i = 2; i <= n; ++i) {
k = 0;
for (int d = 2; d <= i / 2; ++d) {
if (i % d == 0) k = 1, d = i / 2;
}
if (k == 0) cout << i << " ";
}
}
2)
#include <iostream>
using namespace std;
int main() {
int a, b, s=0, k=0, ok;
cin >> a >> b;
for (int i = a; i <= b; ++i) {
ok = 0;
for (int d = 2; d <= i / 2; ++d) {
if (i % d == 0) ok = 1, d = i / 2;
}
if (ok == 0) {
k++;
s = s + i;
}
}
cout << (float)s / k;
}