HiveBrain v1.2.0
Get Started
← Back to all entries
snippetMinor

For some $n$, how can we check whether there exists $a,b \in \mathbb{N}$ such that $a^b = n$ in polynomial time?

Submitted by: @import:stackexchange-cs··
0
Viewed 0 times
suchcanmathbbpolynomialexiststimethatsomeforhow

Problem

For some given $n$, how can we check whether there exists $a,b \in \mathbb{N}$ ($b > 0$) such that $a^b = n$ in polynomial time with respect to the number of digits in $n$?

Solution

Note that $b$ is upper bounded by $\log n$, so you can go over all possible integers $x\in\left[1,\lceil\log n\rceil\right]$, and for each $x$ check whether the equation $a^x=n$ has an integer solution, i.e. whether or not $n^{\frac{1}{x}}$ is an integer. You might be interested in root finding algorithms.

Context

StackExchange Computer Science Q#88501, answer score: 8

Revisions (0)

No revisions yet.