Descompunerea unui numar natural n in factori primi

Configurare noua (How To)

Situatie

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.

Solutie

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();
        }
    }
}

Tip solutie

Permanent

Voteaza

(10 din 20 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?