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

Fie un sir de n elemente sa se afiseze elementele din sir ce au produsul cifrelor mai mici ca 10. Nu stiu sa o fac.
vreau in limbajul C++

Răspunsuri la întrebare

Răspuns de larycuca23
0

Răspuns:

Se citește un număr natural n. Afișați toate tripletele de numere naturale x, y, z (1<x<y<z<n) care sunt divizori ai lui n și care au proprietatea că x+y+z=n.

Programul va afișa pe ecran pe rânduri separate câte un triplet conform cerinței, numerele din triplet fiind in ordine strict crescatoare și separate prin cate un spațiu. Dacă nu există nici un astfel de triplet, atunci se va afișa pe ecran nu exista.

Exemple:

Pentru n=24 se obtin 4 8 12.

Pentreu n=20 se afiseaza nu exista.

Rezolvare

#868. [2018-08-03 - 19:34:32]

Se citesc două numere naturale a și b (a mai mic decât b) având cel mult 9 cifre fiecare. Afișați câte numere din intervalul [a,b] au exact 3 divizori.

Exemplu:

În intervalul [11,50] numerele care au exact 3 divizori sunt 25 și 49, deci se va afișa 2.

Răspuns de Apollyon
1

Răspuns:

#include <iostream>

using namespace std;

int main() {

 int vectorNumere[50] = {}, cateNumere, produsulCifrelor = 1;

 cout << "Cate numere citesti de la tastatura ? >> ";

 /* citim câte numere vrem să adăugăm de la tasatură în vector */

 cin >> cateNumere;

/* citim numerele în vector */

 for (int i = 0; i < cateNumere; i++) {

   cout << "vectorNumere[" << i << "] = ";

   cin >> vectorNumere[i];

 }

 /* după ce le-am citit, parcurgem vectorul */

 for (int i = 0; i < cateNumere; i++) {

   /* salvăm numărul curent într-o variabilă (pentru a nu modifica direct variabila din vector), opțional, am făcut asta pentru că în afișarea de la final vreau să afișez și numerele care au produsul cifrelor mai mic decât 10, dacă modificam direct valoarea din vector acest lucru nu mai era posibil. */

   int numarCurent = vectorNumere[i];

   /* atât timp cât numărul e diferit de 0 adăugăm ultima cifră (pe care o calculăm cu % 10 ) la produsul numerelor */

   while (numarCurent != 0) {

     int ultimaCifra = numarCurent % 10;

     produsulCifrelor = produsulCifrelor * ultimaCifra;

     numarCurent = numarCurent / 10;

   }

   /* dacă produsul cifrelor numărului curent e mai mic decât 10 afișăm numărul */

   if (produsulCifrelor < 10) {

     cout << vectorNumere[i] << " are produsul cifrelor mai mic decat 10!\n";

   }

   /* și resetăm produsul la 1 pentru următoarele iterări */

   produsulCifrelor = 1;

 }

 return 0;

}

Alte întrebări interesante