Sa se descompună un număr natural n în factori primi.
Ex: 360=23*32*51
Analiza Programului
Consideram toate numerele naturale incepand cu 2.
Pentru fiecare numar verificam daca este divizor al lui n. Daca da, calculam multiplicitatea acestui divizor in n impartind succesiv pe n la divizor si calculam numarul de impartiri efectuate atat timp cat n mai are divizori.
Rezolvarea in C#
using System; namespace _20 { class Program { static void Main(string[] args) { Console.WriteLine("Introduceti numarul natural"); int n = int.Parse(Console.ReadLine()); int m, p; m = n; //pentru fiecare numar verificam daca este divizor for (int divizor = 2; divizor <= n / 2; divizor++) { //este divizor, calculam multiplicitatea if (m % divizor == 0) { p = 0; while (m % divizor == 0) { p ++; m /= divizor; } Console.Write("{0}^{1}*", divizor, p); } if (m == 1) break; } Console.WriteLine("1"); 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 n, m, p; cout<<"Introduceti numarul natural:"; cin>>n; m = n; for (int d = 2; d <= n / 2; d ++) { if (m % d == 0) { p = 0; while (m % d == 0) { p ++; m /= d; } cout<<d<<" ^ "<<p<<endl; } if (m == 1) break; } return 0; }
Category: Uncategorized