Matematika feladatok
-
#2918
leírom BASIC-ban...
azt mindenki érti... :)
10 INPUT"Irj be egy számot";SZAM
20 L2=LOG(SZAM)/LOG(2)
30 KIS=INT(L2)
40 NAGY=KIS+1
50 KISEBB=2^KIS
60 NAGYOBB=2^NAGY:REM ez lehetne NAGYOBB=2*KISEBB is, az még jobb
70 IF (KISEBB=SZAM) THEN SZAM;": IGEN":END
80 PRINT SZAM;": NEM,";NAGYOBB:END
Magyarul az a módszer, h:
NE azt vizsgáljuk, h egész-e a log(szám)/log(2), mert ez 3 művelet és mind pontatlan, hanem azt, hogy
a szám kettes alapú logaritmusának egész részére emelve a kettőt visszakapjuk-e a számot
Akkor a még egyszerűbb:
10 INPUT"Irj be egy számot";SZAM
20 L2=LOG(SZAM)/LOG(2)
30 KIS=INT(L2)
50 KISEBB=2^KIS
70 IF (KISEBB=SZAM) THEN SZAM;": IGEN":END
80 PRINT SZAM;": NEM,";2*KISEBB:END