I would like not to use the function pow()

but instead write a very simple one

is there a simple formula i can use?Code:`long power2 (long n);`

{

// Returns 2 raised to the power of n.

}

thank you

Printable View

- 01-23-2009mrsirpoopsalotPower
I would like not to use the function pow()

but instead write a very simple one

Code:`long power2 (long n);`

{

// Returns 2 raised to the power of n.

}

thank you - 01-23-2009tabstop
Raising a number to a power is just repeated multiplication.

(If you want 2^n, you can do even better because of the internal binary representation of the number -- multiplying by 2 in binary is just like multiplying by 10 in decimal: you just move things over.) - 01-23-2009laserlight
If your comment is accurate then in this case it really is very simple:

Code:`// Returns 2 raised to the power of n.`

long power2(long n)

{

return 1L << n;

}

EDIT:

Then again, since your power2() function deals with long rather than unsigned long, it might make sense to define power2() for negative valued arguments as returning 0. A simple if statement would suffice. - 01-24-2009mrsirpoopsalot
what i want to do is send in a prime number

and make it a mersenne prime.

using 2^n -1

not sure how i can do that without using pow() - 01-24-2009laserlight
Ah, then a left shift as tabstop hinted and I demonstrated would indeed be correct. Since n would be positive, you would not have to account for negative numbers either.

- 01-24-2009mrsirpoopsalot
- 01-24-2009laserlightQuote:

Originally Posted by**mrsirpoopsalot**

- 01-24-2009mrsirpoopsalot
I was going to test from 2 to a million numbers and if a prime number then send that prime number to the power2 function. I will work on it this weekend!

ok, i will read the tutorial thank you and i will use this expression

(1L << n) - 1 - 01-24-2009iMalc