Se citesc n nr naturale de la tastatură. Sa se determine în câte zerouri se va termina produsul acestora, fără a calcula efectiv produsul. Ex: 12, 35, 30, 75 → 3 zerouri.
Analiza Programului
Pentru a obtine cifra zero, singura posibilitate o reprezinta inmultirea factorilor primi 2 si 5.
Numaram de cate ori apar 2 si 5 in descompunerea numarului si valoarea cea mai mica dintre cele doua contoare va insemna numarul de zerouri.
Rezolvarea in C#
using System; namespace _20 { class Program { static void Main(string[] args) { int n; int _2count, _5count, countZeroes; _2count = _5count = countZeroes = 0; Console.WriteLine("Numarul de numere naturale:"); int numbers = int.Parse(Console.ReadLine()); for (int i = 1; i <= numbers; i++) { Console.WriteLine("Numarul {0}", i); n = int.Parse(Console.ReadLine()); //cat timp numarul este divizibil la 2, incrementam contorul corespunzator if (n % 2 == 0) { while (n % 2 == 0) { _2count++; n = n / 2; } } //cat timp numarul este divizibil la 2, incrementam contorul corespunzator if (n % 5 == 0) { while (n % 5 == 0) { _5count++; n /= 5; } } if (_2count < _5count) countZeroes = _2count; else countZeroes = _5count; } Console.WriteLine("Numarul de zerouri al produsului este: {0}", countZeroes); Console.ReadLine(); } } }
Rezolvarea in C++
//the header conio, which include library functions for performing "console input and output" #include <conio.h> //the header iostream, which supports the C++ I/O system #include <iostream> //tells the compiler to use the std namespace using namespace std; //begin program execution int main() { int numbers, n; int _2count, _5count, countZeroes; _2count = _5count = countZeroes = 0; cout<<"Numarul de numere naturale:"; cin>>numbers; for (int i = 1; i <= numbers; i++) { cout<<"Numarul "<<i<<endl; cin>>n; //cat timp numarul este divizibil la 2, incrementam contorul corespunzator if (n % 2 == 0) { while (n % 2 == 0) { _2count++; n = n / 2; } } //cat timp numarul este divizibil la 2, incrementam contorul corespunzator if (n % 5 == 0) { while (n % 5 == 0) { _5count++; n /= 5; } } if (_2count < _5count) countZeroes = _2count; else countZeroes = _5count; } cout<<"Numarul de zerouri al produsului este: "<<countZeroes<<endl; return 0; }
Category: Uncategorized