我正在尝试计算模块化逆。这是我尝试过的,但它不起作用。
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
答案 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