模块化反向,C#无法按预期工作

时间:2012-03-26 20:27:57

标签: c#

我正在尝试计算模块化逆。这是我尝试过的,但它不起作用。

while (priv != 1)
{
    priv = ((x * other) % modulo);
    x++;
    textBox3.Text = textBox3.Text + "Trying: " + priv.ToString() + " ..."+"\n";
    if (priv == 1)
    {
        textBox3.Text = (" IS: " + priv.ToString() +" !");
    }
}

有时这会输出1,或者什么都没有。

我正在尝试模块化逆(x) of [x*781]%2828 = 1

2 个答案:

答案 0 :(得分:1)

输出1或不输出,因为输出代码包含在priv == 1检查...

您可能希望对代码进行此更改(不确定计算是否正确,因为它不是您要描述的问题的原因):

while (priv != 1)
{
    priv = ((x * other) % modulo);
    x++;
    textBox3.Text = textBox3.Text + "Trying: " + priv.ToString() + " ..."+"\n";
    if (priv == 1)
    {
        break;  // end the loop
    }
}

textBox3.Text = (" IS: " + priv.ToString() +" !");

答案 1 :(得分:-1)

好吧,我不想破坏你的功课。这是维基百科关于计算所需内容的各种算法的文章:http://en.wikipedia.org/wiki/Modular_multiplicative_inverse