pub fn split_odd_even(n: u64) -> (u64, u64) {
	let mut even_power = 0;
	let mut n_shift = n;

	loop {
		if n_shift & 1 == 0 {
			even_power += 1;
			n_shift = n_shift.rotate_right(1)
		} else {
			return (n_shift, even_power)
		}
	}
}
//returns the odd part of n and the exponent of the even power
returns the odd part of n and the exponent of the even power
returns the odd part of n and the exponent of the even power
pub fn split_odd_even(n: u64) -> (u64, u64) {
	let mut even_power = 0;
	let mut n_shift = n;
	loop {
		if n_shift & 1 == 0 {
			even_power += 1;
			n_shift = n_shift.rotate_right(1)
		} else {
			return (n_shift, even_power)
		}
	}
}
pub fn split_odd_even ( n : u64 ) -> ( u64 , u64 ) { let mut even_power = 0 ; let mut n_shift = n ; loop { if n_shift & 1 == 0 { even_power += 1 ; n_shift = n_shift . rotate_right ( 1 ) } else { return ( n_shift , even_power ) } } }
returns the odd part of n and the exponent of the even power
returns the odd part of n and the exponent of the even power
n
u64