Instrukcja if/else

0

Wyświetlanie kodu: Czynniki pierwsze liczby np.24 = 2x2x2x3x tylko tam gdzie x u mnie w kodzie jest gwiazdka i jak sprawić aby nie wyświetlała się ona po ostatniej cyfrze?

#include <iostream>
using namespace std;
int main()
{
    int liczba;
    cout<<"Podaj liczbe naturalna, jednak nie wieksza niz milion"<<endl;
    cin>>liczba;
    if(liczba>0 && liczba<1000000)
        {
            cout<<"Czynniki pierwsze liczby "<<liczba<<" = ";
       
        int k=2; //ustawiamy k na pierwszą liczbę pierwszą

        //rozkład liczby na czynniki pierwsze
        while(liczba>1)
        {
                while(liczba%k==0) //dopóki liczba jest podzielna przez k
                {
                        cout<<k<<'*';
                        liczba/=k;
                }
                ++k;
        }
        }
    else
        {
            cout<<"Miales podac liczbe naturalna, koniec programu";
        }
return 0;
}
1

Po 1 sformatuj kod na forum , po 2 sprawdz czy to ostatni czynnik, jesli tak to nie pokazuj gwiazdki jesli nie, to pokaz.

0

Właśnie nie wiem jak się za to zabrać jakaś podpowiedź?

1

tak na szybko:

cout<<k;
if (liczba%2 == 0)
{
    cout<<'*';
}
 liczba/=k;
0

Sprawdza się w przypadku 24 lecz gdy damy inny czynnik to runie ;/

1

no tak, sorry :P

cout<<k;
if (liczba/k > 1)
{
    cout<<'*';
}
 liczba/=k;
1

Dla mnie ten sposób eliminacji * jest prostszy (czytelniejszy):

bool first = true;   
while(liczba%k==0) //dopóki liczba jest podzielna przez k
{
  if (!first)
  {
    cout<<'*';
  }
  else
  {
    first = false;
  }
  cout<<k;
  liczba/=k;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1