Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth
Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

42,709 questions

55,473 answers

573 users

How to write 4 different functions that check if a number is a power of 2 in Swift

1 Answer

0 votes
import Foundation

// Method A: Bit‑counting
func isPowerOfTwoA(_ x: Int) -> Bool {
    if x <= 0 { return false }
    return x.nonzeroBitCount == 1
}

// Method B: Bitwise trick
func isPowerOfTwoB(_ x: Int) -> Bool {
    return x > 0 && (x & (x - 1)) == 0
}

// Method C: Repeated division
func isPowerOfTwoC(_ x: Int) -> Bool {
    if x <= 0 { return false }
    var n = x
    while n % 2 == 0 {
        n /= 2
    }
    return n == 1
}

// Method D: Using logarithms
func isPowerOfTwoD(_ x: Int) -> Bool {
    if x <= 0 { return false }
    let logv = log2(Double(x))
    return abs(logv - round(logv)) < 1e-10
}

let test1 = 16 // true
let test2 = 18 // false

print("A: \(isPowerOfTwoA(test1)), \(isPowerOfTwoA(test2))")
print("B: \(isPowerOfTwoB(test1)), \(isPowerOfTwoB(test2))")
print("C: \(isPowerOfTwoC(test1)), \(isPowerOfTwoC(test2))")
print("D: \(isPowerOfTwoD(test1)), \(isPowerOfTwoD(test2))")


/*
OUTPUT:

A: true, false
B: true, false
C: true, false
D: true, false

*/

 



answered Apr 2 by avibootz

Related questions

...