定义
原根:设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根。
举例:
设a= 3,由于3^1≡3(mod 7),3^2≡2(mod 7),3^3≡6(mod 7),3^4≡4(mod 7),3^5≡5(mod 7),3^6≡1(mod 7),所以 3 是模 7 的一个原根。
也就是说,3模7的阶包含1到6中的每一个数,则3是模7的一个原根。
页面设计:
代码:
private void button4_Click(object sender, EventArgs e)
{
int a = Convert.ToInt32(aValue.Text);
int p = Convert.ToInt32(pValue.Text);
int x = 1;
bool flag = true;
int[] numList = new int[100];
genEquation.Text = ""; // 清空
for (int t = 1; t < p; t++)
{
x = Convert.ToInt32(Math.Pow(a, t)) % p;
numList[x] = 1;
genEquation.Text += Convert .ToString(a)+"^"+ Convert.ToString(t)+" mod "+ Convert.ToString(p)+" = "+ Convert.ToString(x)+ "\r\n";
}
for (int num = 1; num<p; num++)
{
if (numList[num] == 0)
flag = false;
}
if(flag) genResult.Text = Convert.ToString(a)+"是"+Convert.ToString(p)+"的原根";
else genResult.Text = Convert.ToString(a) + "不是" + Convert.ToString(p) + "的原根!";
}
效果如下: