Cum as putea sa transform urmatoarea problema sunb forma de functie?
Multumesc.
Problema:
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.
==========================================
Rezolvarea:(este buna, dar vreau sa mi-o transformati sub forma de functie)
#include
using namespace std;
int main() {
int a , b;
cin >> a >> b;
if(a>b) {
int aux = a;
a = b;
b = aux;
}
int ct = 0;
for(int i = x ; i <= y; i++){
int prim = 1;
if(i<2) prim=0;
if(i % 2 == 0 && i != 2) prim=0;
for(int d = 3; d * d <= i ; d ++)
if(i % d == 0) prim=0;
if(prim == 1)
ct++;
}
cout << ct;
return 0;
}
==========================================
using namespace std;
int main() {
int x , y;
cin >> x >> y;
if(x>y) {
int aux = x;
x = y;
y = aux;
}
int ct = 0;
for(int i = x ; i <= y; i++){
int prim = 1;
if(i<2) prim=0;
if(i % 2 == 0 && i != 2) prim=0;
for(int d = 3; d * d <= i ; d ++)
if(i % d == 0) prim=0;
if(prim == 1)
ct++;
}
cout << ct;
return 0;
}
Răspunsuri la întrebare
Răspuns de
1
#include <iostream>
using namespace std;
int aux,i,prim,d,ct,x,y;
void functie (int x,int y) {
if(x>y) {
int aux = x;
x = y;
y = aux;
}
int ct = 0;
for(int i = x ; i <= y; i++){
int prim = 1;
if(i<2) prim=0;
if(i % 2 == 0 && i != 2) prim=0;
for(int d = 3; d * d <= i ; d ++)
if(i % d == 0) prim=0;
if(prim == 1)
ct++;
}
cout << ct;
}
int main()
{
cin>>x>>y;
functie(x,y);
}
using namespace std;
int aux,i,prim,d,ct,x,y;
void functie (int x,int y) {
if(x>y) {
int aux = x;
x = y;
y = aux;
}
int ct = 0;
for(int i = x ; i <= y; i++){
int prim = 1;
if(i<2) prim=0;
if(i % 2 == 0 && i != 2) prim=0;
for(int d = 3; d * d <= i ; d ++)
if(i % d == 0) prim=0;
if(prim == 1)
ct++;
}
cout << ct;
}
int main()
{
cin>>x>>y;
functie(x,y);
}
int i;
if(x>2) return 0;
if(x%2==0 && x!=2) return 0;
for(int d=3;d*d<=x;d+=2)
if(x%d==0) return 0;
return 1;
}
Răspuns de
1
Uite aici o sursa, am facut 2 functii, una pentru verificarea unui numar daca e prim si una pentru cate numere sunt prime in intervalul [a,b].
#include <bits/stdc++.h>
using namespace std;
int Prim(int n){ if(n == 0 || n == 1) return 0; else { int d; for(d = 2; d <= sqrt(n); d++) if(n % d == 0) return 0; return 1; }}
int Numere(int a, int b){ int i, contor = 0; for(i = a; i <= b; i++) { int x = Prim(i); if(x == 1) contor++; } return contor;}
int a, b;
int main(){ cin >> a >> b; cout << Numere(a, b); return 0;}
#include <bits/stdc++.h>
using namespace std;
int Prim(int n){ if(n == 0 || n == 1) return 0; else { int d; for(d = 2; d <= sqrt(n); d++) if(n % d == 0) return 0; return 1; }}
int Numere(int a, int b){ int i, contor = 0; for(i = a; i <= b; i++) { int x = Prim(i); if(x == 1) contor++; } return contor;}
int a, b;
int main(){ cin >> a >> b; cout << Numere(a, b); return 0;}
Alte întrebări interesante
Geografie,
8 ani în urmă
Studii sociale,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Istorie,
9 ani în urmă
Limba română,
9 ani în urmă
using namespace std;
int prim (int);
int main() {
int a , b;
cin >> a >> b;
if(x>y) {
int aux = a;
a = b;
b = aux;
}
int ct = 0;
for(int i = a ; i <= b; a++){
ct++;
}
cout << ct;
return 0;
}