从哥德尔代码转换为文本

时间:2016-05-05 23:50:10

标签: c# encryption

我正在使用Gödel加密软件,但我遇到了问题。 加密后如何获取代码?例如,符号0的哥德尔数为6,符号=的哥德尔数为5.因此,在他们的系统中,公式0 = 0的哥德尔数为2 ^ 6×3 ^ 5×5 ^ 6 = 243,000,000。

注意:2 ^ 6表示功率6中的2。

 //need to make 5+6
        int equalsign = 5;
        int n5 = 2;
        int n6 = 59;
        int final;
        //do caluclations
        final = (Math.Pow(2, 2) * Math.Pow (3, 5) * Math.Pow(5, 59)); 
        Console.WriteLine(final);

如何从243,000,000获得0 = 0?我有这个问题,有任何建议如何制作或代码?

final = (Math.Pow(2, 2) * Math.Pow (3, 5) * Math.Pow(5, 59)); 

这也行不通。任何方式如何解决这个问题?

这是哥德尔公式: Image 1

1 个答案:

答案 0 :(得分:1)

一般的想法是将数字final除以当前素数p,只要它可以被p均分。你可以按每个素数均匀划分的次数为你提供了力量。

粗略地说你正在寻找类似下面的伪代码:

code = []
for each prime p:
    c = 0
    while final % p == 0:
         c++
         final = final / p
    code.append(c)