Informatică, întrebare adresată de magicalremix, 8 ani în urmă

Se citește n numar natural nenul. Afișați:
a) cea mai mica si cea mai mare cifra a lui n
b) cate cifre impare are numărul n
c) media aritmetică a sumei cifrelor lui n
d) verificați dacă inversul lui n este număr prim
Va rog sa ma ajutați cat de mult posibil :)​


Mghetes: le-am facut pe toate intr-un singur program

Răspunsuri la întrebare

Răspuns de Mghetes
1

#include <iostream>

using namespace std;

bool numarPrim(int numar) // Functia returneaza doar true sau false - pentru ca nu avem nevoie de alte valori

{

   if(numar < 2) // Daca numarul este mai mic ca si 2 (1, 0, -1, -2, etc) - acesta nu este prim

       return false;

   if(numar == 2) // Daca numarul este 2, acesta este prim

       return true;

   // for(int i = 2; i <= sqrt(numar); i++) - Optimizare in caz de nevoie

   for(int i = 2; i <= numar / 2; i++) // Parcurgem toate numerele de la 2 la numar / 2

       if(numar % i == 0) // Daca acesta se imparte exact la acel numar, inseamna ca nu este prim

           return false;

   return true;

}

int main() {

 int n, ci, uc, min, max, ma, nr, s, inv;

 //ci - cifre impare

 //uc - ultima cifra

 //min - cea mai mica cifra

 //max - cea mai mare cifra

// ma = media aritmetica

// nr - nr de cifre ale nr

   

 cout <<"n=";

 cin>> n;

 

 // nr de cifre impare = 0;

 ci = 0;

min = n % 10;

max = min;

nr = 0;

s = 0;

inv = 0;

 

 //luam cifra cu cifra si le numaram pe cele impare

 while(n > 0)

 {

     // ultima cifra din nr

     uc = n % 10;

     

     s = s + uc;

     nr ++;

     

     inv = inv * 10 + uc;

     

    if(uc % 2 == 1)

      ci++;

       

     if(uc > max)

      max =  uc;

       

     if (uc < min)

      min = uc;

     

     // eliminam ultima cifra pe care am procesat-o mai sus

     n = n/ 10;

     

 }

 

 cout<<"cifre impare = "<<ci<<endl;

 cout<<"cifra minima = "<<min <<endl;

 cout<<"cifra maxima = "<<max<<endl;

 

 ma = s / nr;

  cout<<"media aritmetica ma= "<<ma<<endl;

   

 if(numarPrim(inv))  

     cout <<inv<<" este prim";

 else  

 cout <<inv<<" NU este prim";

 

 return 0;

}

Alte întrebări interesante