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,844 questions

55,671 answers

573 users

How to find the first power of 2 whose leading digits are 12 in Kotlin

1 Answer

0 votes
import kotlin.math.log10
import kotlin.math.floor
import kotlin.math.pow

// return true if 2^n starts with prefix, else false
fun startsWithPrefix(n: Long, prefix: Int): Boolean {
    val log2v: Double = log10(2.0)

    val x: Double = n * log2v
    val frac: Double = x - floor(x)

    // count digits in prefix
    val buf: String = prefix.toString()
    val digits: Int = buf.length

    // compute leading digits
    val leading: Int = floor(10.0.pow(frac + digits - 1)).toInt()

    return leading == prefix
}

fun main() {
    val prefix: Int = 12

    var n: Long = 1
    while (true) {
        if (startsWithPrefix(n, prefix)) {
            println("First n = $n")
            println("2 ^ $n = ${2.0.pow(n.toDouble()).toLong()}")
            break
        }
        n++
    }
}


/*
run:

First n = 7
2 ^ 7 = 128

*/

 



answered Jun 13 by avibootz

Related questions

...