determining if a int is a power

Hal Daume III hdaume at ISI.EDU
Fri Nov 7 14:51:17 EST 2003

try "floor (sqrt (fromIntegral n))"

On Fri, 7 Nov 2003 ddekker6 at wrote:

> hello all,
> im new to haskell and have to do some excersises. Well i ran into this problem. I have to determin if a list of int's contains a int that is a power. So i have been trying using "any" with a helper function which return a Bool if the int is a power and applying that to the list. I think that this aproach should work.
> Anyway the problem im having is in the helper function. I have been trying this:
> isPower n = 
> 	let powerF = floor(sqrt(n)) in
>      	if (powerF*PowerF == n)
> 		then True
> 		else False
> but this doesnt work. Prelude says that the definition of isPower needs a fractional int (if i remember correctly)  anyway it looks like something is wrong with my type's? Could you guys help me out? Is there a simple standard function i overlooked. Or what should i change? Thanks in advance guys/gals
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at

 Hal Daume III                                   | hdaume at
 "Arrest this man, he talks in maths."           |

More information about the Haskell-Cafe mailing list