一整數a 對模數n之模反元素是指滿足以下公式的整數b
a-1 ≡ b (mod n)
也可以寫成以下的式子
ab ≡ 1 (mod n)
現在給定兩個數字a,n,求一個最小正整數b,若不存在則輸出”No Inverse”
輸入說明 :
有多筆測資,每組第一行有兩個數字a,n,(1 ≦ a,n ≦ 100,000,000)
輸出說明 :
一個最小正整數 b,若不存在則輸出” No Inverse”
範例輸入 :
79 62
96 47
49 28
範例輸出 :
11
24
No Inverse
程式碼 :
#include<stdio.h>
int main()
{
int a, n, quotient, remainder, temp_a, temp_b, temp_c, temp_n;
while(scanf("%d%d",&a,&n)==2)
{
if(n == 1)
{
printf("No Inverse\n");
continue;
}
temp_n = n;
temp_a = 0;
temp_b = 1;
temp_c = 1;
while(1)
{
quotient = temp_n / a;
remainder = temp_n % a;
if(remainder == 0)
{
if(a == 1)
printf("%d\n",temp_c<0?(temp_c+n):temp_c);
else
printf("No Inverse\n");
break;
}
temp_n = a;
a = remainder;
temp_c = (temp_a - quotient*temp_b) % n;
temp_a = temp_b;
temp_b = temp_c;
}
}
return 0;
}
http://zerojudge.tw/ShowProblem?problemid=a289
看不懂題目ㄝ==
回覆刪除一整數a 對模數n之模反元素是指滿足以下公式的整數b
a-1 ≡ b (mod n)
也可以寫成以下的式子
ab ≡ 1 (mod n)
現在給定兩個數字a,n,求一個最小正整數b,若不存在則輸出”No Inverse”
給你 ab / n = 商數...1,給你a和n,並且不用管商數,求b
回覆刪除