Python 如何将数字转换为特定格式?

Python 如何将数字转换为特定格式?,python,algorithm,math,python-3.x,Python,Algorithm,Math,Python 3.x,我有一个数字n,我想用一种方法把它转换成k*2^n-1的格式。请注意,n将是一个非常大的数字,大约100000多个数字长,这就是为什么我想把它转换成这种形式。n将始终是奇数,是整数和实数 如果不可能,那么可以将其制作成k*b^n-1格式吗?我希望基数为2,但任何基数都可以。作为奇数并不足以表示n,使用k*2^m-1格式表示m!=0和m!=1。这是因为除了2=2^1本身之外,偶数不能始终表示为基数为2的幂的乘积 例如,数字n=11。为了适应该格式,我们必须添加1,因此我们试图用k*2^m格式表示n

我有一个数字n,我想用一种方法把它转换成k*2^n-1的格式。请注意,n将是一个非常大的数字,大约100000多个数字长,这就是为什么我想把它转换成这种形式。n将始终是奇数,是整数和实数


如果不可能,那么可以将其制作成k*b^n-1格式吗?我希望基数为2,但任何基数都可以。

作为奇数并不足以表示
n
,使用
k*2^m-1格式表示
m!=0和
m!=1
。这是因为除了
2=2^1
本身之外,偶数不能始终表示为基数为2的幂的乘积

例如,数字
n=11
。为了适应该格式,我们必须添加1,因此我们试图用
k*2^m
格式表示
n'=12
n'
的素因式分解是
n'=2*2*3=2^2*3^1
,所以你可以看到,有一个因子不是2。因此单个
k*2^m
不能代表数字12

m
的唯一可能值是0和1。它们可以表示任意奇数整数:

# m = 0
(n + 1) * 2^0 - 1

# m = 1
((n + 1) / 2) * 2^1 - 1

@sshashank124 codeforme域正在出售:)我看了一些东西,但它们只适用于2^n+k类型,但我需要将其转换为k*2^n-1格式。“数字n[…]转换为k*2^n-1格式”-这些是不同的n吗?您的数字是整数还是实数?对不起,公式中的n不同,是的,它是整数和实数。否,191可以用3*2^6-1和许多其他示例表示。我需要找到一种方法,用尽可能最小的k值来表示它们。是的,当然,它适用于一些数字,但它不适用于所有奇数。