Algoritm pseudocod - inlocuire 2 structuri cu una singura

Se dau urmatorul algoritm in pseudocod:

citeste x(numar natural)
 d=2;
 scrie x
 cat timp x>=d executa
       cat timp x%d=0 executa
                x=[x/d]
                scrie x
       // sfarsit al doilea cat timp
      d=d+1
//sfarsit primul cat timp

//Il scriu si in varianta C/C++ poate e mai usor de inteles
int x;
cin>>x;
int d=2;
cout<<x;
while(x>=d) {
  while(x%d==0) {
    x=x/d;
   cout<<x;
 }
d++;
}

Sa se scrie un algoritm echivalent cu cel dat care sa contina o singura structura repetitiva.

Am incercat sa fac un singur cat timp cu dubla conditie dar nu prea merge…

Daca stie cineva cum se rezolva poate scrie direct cod(fara pseudocod)

while in while mi se pare overkill !
poti sa combini acele conditii folosind operatori logici

Excact cum a incercat sa faca tipul aici

Asa s-a dat…cerinta e sa faci un algoritm echivalent cu doar o structura repetitiva(fie ea while sau for)

pai trebuie sa combini acele conditii
ai nevoie de un operator logic

poti sa folosesti un and (&&) daca vrei ca acele 2 conditii sa fie indeplinite simultan

1 Like

Eu nu stiu C/C++ dar am rezolvat problema in PHP.

$x reprezinta int x al tau, respectiv $d reprezinta int d al tau.

while ($x >= $d) {
    if ($x % $d == 0) {
        echo $x;
    } else {
        $d++;
        
        continue;
    }

    $x = $x / $d;
}
1 Like

Ar merge rescris si asa:

    int x;
    cin >> x;
    
    int d = 2;
    cout << x;
    
    while (x >= d) {
        if (x % d == 0) {
            x = x / d;
            cout << x;
        } else {
            d++;
        }
    }
1 Like