Találd meg a legnagyobb nem természetes divizátort, a pascal problémáit, a programozáshoz

A készítmény. Figyelembe véve a természetes számot. Találd meg a legnagyobb nem triviális osztóját, vagy írj le egy egységet, ha nincs.

1. megjegyzés: a természetes b számot természetes szám osztójának nevezik.





amelyen a osztható maradék nélkül. Vagyis a "b-divider a" kifejezés azt jelenti: a / b = k. ahol k természetes szám.

Megjegyzés: egy nem triviális osztó egy osztó, amely különbözik az 1-től és a számtól (mivel minden természetes szám önmagában és önmagában oszlik meg).







A megoldás. Legyen a billentyűzet bemenet az n változóra. Próbáljuk meg megoldani a problémát brutális erővel. Ehhez kevesebb n-t veszünk fel, mint n, és ellenőrizzük, hogy n oszlik-e meg vele. Ha igen, nyomtassa ki az eredményt, és lépjen ki a hurokból a szüneteltetési utasítással. Ha nem, akkor csökkentse a számot 1-gyel és folytassa az ellenőrzést. Ha a szám nem rendelkezik nem triviális osztókkal, akkor egy lépésben az ellenőrzés egy olyan értéket ér el, amelyre a szám garantáltan megosztásra kerül, majd egy megfelelő választ adnak ki.

Bár pontosabban meg kell kezdeni az n div 2-vel egyenlő számot (a részleges rész eldobása, ha az elosztása n, ha az n páratlan), hiszen természetes számmal nem rendelkeznek osztókkal, mint a fele. Ellenkező esetben a divízió hányadosának természetes számnak kell lennie 1 és 2 között, ami egyszerűen nem létezik.

Ez a feladat megoldható is. de a másik verzióján keresztül, és most a számláló 2-ről 1-re csökken. Ennek következtében a downto változó lesz. az eredeti és a végértékek pozíciójában ugyanaz marad.

Algoritmus természetes nyelven:

2) Olyan hurok futtatása, amelynél a i-től 2-ig változik. A hurokban:

1. Ha n osztható i-vel (azaz az n számnak az i-vel való osztódásának maradék része 0, akkor i kerül ki a képernyőre, és törésből kilép a hurokból.

By the way, a fióktelep üzemeltetője, ha a hurokban nincs más -lock. Az ilyen feltételes szolgáltatót egy fióktelepű fióktelep kezeli.