Algoritm pseudocod - inlocuire 2 structuri cu una singura


(dacian) #1

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)


(cosmos) #2

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

Excact cum a incercat sa faca tipul aici


(dacian) #3

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


(cosmos) #4

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


(cosmos) #5

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


(Catalin Ionut Titov) #6

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

(Ionut Milica) #7

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++;
        }
    }