Ellenőrizze, hogy két természetes szám barátságos-e, pascal feladatok, programozás
A készítmény. Két természetes számot kapunk. Ellenőrizze, hogy barátságosak-e.
Megjegyzés: A hívott számok barátságos két különböző pozitív egész szám úgy, hogy az összeg az összes megfelelő osztója az első szám egyenlő a második számot, és az összeg az összes megfelelő osztója a második szám az első számot.
Például a 220 és a 284 egy pár barátságos szám, mert:
Saját osztóinak összege 220: 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284
Saját osztóinak összege 284: 1 + 2 + 4 + 71 + 142 = 220
A megoldás. Ez a probléma hasonlít a probléma, mert a 20 is figyelembe vettük az összeg helyes osztója a megadott számot, és hasonlítsa össze ezt az összeget a nagyon számok ellenőrzése azt tökéletesen. Ebben az esetben meg kell találni nem csak az összeg saját osztók első szám (jelöljük 1-es szám és n összege a osztók Összefoglalva 1), hanem a második szám (n 2 jelölnek take összeg, illetve 2.). Ezután a probléma megoldása egy összehasonlítás: (n 1 = 2. összeg) és (n 2 = 1. összeg). By the way, itt először a történet, az általunk használt logikai műveletek (Emlékeztetünk arra, hogy a kifejezés X 1andX 2 értéket vesz fel igaz akkor, ha a valódi logikai kifejezések X 1 és X 2, más esetekben tart egy hamis érték).
A javasolt rendszer azonban egyszerűsíthető. Nézzük ennek igazolására egy példát: Tegyük fel, hogy a 8-as szám és 4. Hiszünk az összeg saját osztója 8: 1 + 2 + 4 = 7 Ez a szám más, mint 4, tehát egy pár hosszabb megfelel a definíciónak barátságos számokat. Ön azonnal kiírhatja a negatív választ, elkerülve a második szám osztóinak számítását. Ha a 8-as és 7 kaptak, arra lenne szükség, hogy kiszámítja az összeget a saját osztója a 7-es számú, az egyenlő 1 (mivel ez egyszerű). Most össze kell hasonlítanunk a második saját osztóinak összegét az első számmal: mivel 1 különbözik a 8-tól, a számok nem barátságosak.
Mutassuk meg a blokkdiagramban, hogyan kell elosztani a programot (a két összeg kiszámítása nem látható):
Így logikai műveletek nélkül megteheti.