👤

Napisz program, który dla wczytanej liczby znajdzie jej czynniki pierwsze i zapisze je do pliku tesktowego linia pod linią: np dla100=2 2 5 5

HELP NA JUZ POTRZEBUJE BARDZO


Odpowiedź :

Odpowiedź:

#include <iostream>

#include <vector>

#include <fstream>

using namespace std;

int main()

{

   vector <int> lista;

   int a;

   int i=0;

   int a_start;

   cout<<"Wczytaj liczbe" <<endl;

   cin>>a;

   a_start = a;

  fstream plik( "plik.txt", std::ios::out );

   plik<<"poczatkowa wartosc = " << a_start<< " : ";

while(a!=1)

{

   if(a % 2 == 0)

   {

       a = a/2;

       lista.push_back(2);

     

   }else

   {

       if(a % 3 == 0)

       {

           a=a/3;

           lista.push_back(3);

       

       }else if(a % 4 == 0)

       {

           a=a/4;

           lista.push_back(4);

       

       }else if(a % 5 == 0)

       {

           a=a/5;

           lista.push_back(5);

           

       }else if(a % 6 == 0)

       {

           a=a/6;

           lista.push_back(6);

     

       }else if(a % 7 == 0)

       {

           a=a/7;

           lista.push_back(7);

     

       }

       else if(a % 8 == 0)

       {

           a=a/8;

           lista.push_back(8);

       

       }else if(a % 5 == 0)

       {

           a=a/9;

           lista.push_back(9);

           

       }

   }

   plik<<lista[i]<<endl;

   plik<<a << " : ";

   i++;

}

       plik.close();

   return 0;

}

Wyjaśnienie:

Nie wiem  w jakim języku miał być wykonany program ale podejrzewam że miał być to c++.

Sprawdzam czy liczba jest podzielna najpierw przez 2, jeśli nie to sprawdzam czy dzieli się przez 3 ,4 ,5 itd. aż znajdę najniższy dzielnik nie pozostawiający reszty, następnie zapisuje to do wektora (dynamicznej tablicy) i z niej zapisuje prosto do pliku o nazwie plik.txt który utworzy się automatycznie w programie.