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.