-1
我想创造我afinne代码的互质:互质
static void Main(string[] args)
{
string input = "";
string openMessage = "";
openMessage = openMessage.ToUpper();
string cryptedMessage = "";
int a;
int b;
int m;
Console.WriteLine("Enter the modular size of the alphabet:");
input = Console.ReadLine();
m = int.Parse(input);
Console.WriteLine("Enter first value for encrypting the message:");
input = Console.ReadLine();
a = int.Parse(input);
while(a!=0 && m !=0)
{
if (a > m)
{
a %= m;
} else
{
m %= a;
}
}
Console.WriteLine("Enter second value for encrypting the message:");
input = Console.ReadLine();
b = int.Parse(input);
Console.WriteLine("Enter the message you want to encrypt:");
input = Console.ReadLine();
openMessage = input.ToUpper();
foreach (char letter in openMessage)
{
int letterNumber = (int)letter;
letterNumber = (a * (letterNumber - 65) + b) % m; //Afinne Cipher math
letterNumber = letterNumber + 65;
char encryptedLetter = (char)letterNumber;
cryptedMessage = cryptedMessage + encryptedLetter;
}
Console.WriteLine(cryptedMessage);
}
有没有人有一个建议,如何做到这一点?
我想比较int m
和int a
。我抬头看谷歌,发现this,但看起来很难实现我的代码。
GCD的欧几里得算法很容易实现。你为什么觉得很难? –
因为我仍然是编码初学者 –
https://rosettacode.org/wiki/Greatest_common_divisor –