Se consideră subprogramul prim care primeşte ca parametru un număr natural n (n≤32000) şi care returnează 1 dacă n este număr prim şi respectiv 0 în caz contrar.
a) Scrieţi definiţia completă a subprogramului prim.
b) Scrieţi programul C/C++ care citeşte de la tastatură un număr natural nenul n (n<30) şi n numere naturale cu cel mult 4 cifre fiecare, apoi le afişează pe ecran, numai pe acelea dintre ele care sunt prime. Numerele vor fi afişate în ordine crescătoare, separate prin câte un spaţiu. Programul va utiliza apeluri utile ale subprogramului prim. Exemplu: pentru n=7 şi numerele 3 16 41 4 2 7 12, se vor afişa, în această ordine, numerele: 2 3 7 41.
varianta 14 din variante de bac 2009
Răspunsuri la întrebare
Răspuns de
5
#include <iostream>
using namespace std;
int n, v[100];
bool prim(int x)
{
int i;
for(i=2;i<=x/2;i++)
if(x%i==0) return false;
return true;
}
int main(){
int i, j, aux;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++){
cout<<"v["<<i<<"]=";
cin>>v[i];
}
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
if(v[i]>v[j]){
aux=v[i];
v[i]=v[j];
v[j]=aux;
}
for(i=1;i<=n;i++)
if(prim(v[i])==true) cout<<v[i]<<" ";
}
using namespace std;
int n, v[100];
bool prim(int x)
{
int i;
for(i=2;i<=x/2;i++)
if(x%i==0) return false;
return true;
}
int main(){
int i, j, aux;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++){
cout<<"v["<<i<<"]=";
cin>>v[i];
}
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
if(v[i]>v[j]){
aux=v[i];
v[i]=v[j];
v[j]=aux;
}
for(i=1;i<=n;i++)
if(prim(v[i])==true) cout<<v[i]<<" ";
}
Alte întrebări interesante
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Fizică,
9 ani în urmă
Fizică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă