Sa se rezolve folosind subprogramele
Se da un sir cu n numere naturale.Determinati suma celor care au oglinditul nr prim.
Nu am inteles functiile si as ruga sa mi le explice cineva..am incercat in codeblocks...poate cineva sa-mi spuna daca am facut bine sau macar ideea daca e buna?
#include <iostream>
using namespace std;
int v[100],i,n;
void citire()
{ for(i=1;i<=n;i++)
cin>>v[i];}
void prelucrare()
{ int ogl=0,s=0,copie=0,d;
for(i=1;i<=n;i++)
{ copie=v[i];
while(copie)
{ogl=ogl*10+copie%10; copie=copie/10; }
for(d=2;d<=ogl/2;d++)
{ if(ogl%d!=0) s=s+copie; } } }
return 0;
int afisare(int s)
{ cout<<s;}
int main()
{ citire();
prelucrare();
afisare(); }
Utilizator anonim:
nu cred ca iti trebuie vectori pentru oglindit
Răspunsuri la întrebare
Răspuns de
1
Uite aici o versiune mai eleganta:
#include <iostream>
using namespace std;
int prim(int a)
{
if(a<2)
return 0;
for(int i=2;i<=a/2;i++)
if(a%i==0)
return 0;
return 1;
}
void citire(int v[100],int &n)
{
cin>>n;
for(int i=0;i<n;i++)
cin>>v[i];
}
int palindrom(int a)
{
int aux=a,s=0,c;
while(aux)
{
c=aux%10;
s=s*10+c;
aux/=10;
}
return s;
}
int prelucrare(int v[100],int n)
{
int i,s=0;
for(i=0;i<n;i++)
if(prim(palindrom(v[i])))
s+=v[i];
return s;
}
int main()
{
int v[100],n;
citire(v,n);
cout<<prelucrare(v,n);
return 0;
}
#include <iostream>
using namespace std;
int prim(int a)
{
if(a<2)
return 0;
for(int i=2;i<=a/2;i++)
if(a%i==0)
return 0;
return 1;
}
void citire(int v[100],int &n)
{
cin>>n;
for(int i=0;i<n;i++)
cin>>v[i];
}
int palindrom(int a)
{
int aux=a,s=0,c;
while(aux)
{
c=aux%10;
s=s*10+c;
aux/=10;
}
return s;
}
int prelucrare(int v[100],int n)
{
int i,s=0;
for(i=0;i<n;i++)
if(prim(palindrom(v[i])))
s+=v[i];
return s;
}
int main()
{
int v[100],n;
citire(v,n);
cout<<prelucrare(v,n);
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Istorie,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Chimie,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă