Matematika feladatok
  • ZilogR
    #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