带有C#的模块化反转未按预期工作

本文关键字:工作 模块化 带有 | 更新日期: 2023-09-27 18:29:07

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

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

带有C#的模块化反转未按预期工作

它输出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() +" !");

好吧,我不想毁了你的家庭作业。以下是一篇关于计算所需内容的各种算法的维基百科文章:http://en.wikipedia.org/wiki/Modular_multiplicative_inverse