中易网

用c语言编写扩展欧几里德算法用来求乘法逆元ab=1 mod(n) 要求我输入b,n,求出a。请编译运行通过,谢谢啦

答案:2  悬赏:80  
解决时间 2021-02-18 22:04
用c语言编写扩展欧几里德算法用来求乘法逆元ab=1 mod(n) 要求我输入b,n,求出a。请编译运行通过,谢谢啦
最佳答案
#include

int ExtendedEuclid( int f,int d ,int *result);
int main()
{
int n,b,z;

z = 0;
printf("输入两个数:\n");
scanf("%d%d",&b,&n);
if(ExtendedEuclid(n,b,&z))
printf("%d和%d互素,乘法的逆元是:%d\n",b,n,z);
else
printf("%d和%d不互素,最大公约数为:%d\n",b,n,z);
return 0;
}
int ExtendedEuclid( int f,int d ,int *result)
{
int x1,x2,x3,y1,y2,y3,t1,t2,t3,q;

x1 = y2 = 1;
x2 = y1 = 0;
x3 = ( f>=d )?f:d;
y3 = ( f>=d )?d:f;

while( 1 )
{
if ( y3 == 0 )
{
*result = x3;
return 0;
}
if ( y3 == 1 )
{
*result = y2;
return 1;
}
q = x3/y3;
t1 = x1 - q*y1;
t2 = x2 - q*y2;
t3 = x3 - q*y3;
x1 = y1;
x2 = y2;
x3 = y3;
y1 = t1;
y2 = t2;
y3 = t3;
}
}

全部回答
引用有钱买不起房子的回答:
#include <stdio.h>
int ExtendedEuclid( int f,int d ,int *result);
int main()
{
int n,b,z;
z = 0;
printf("输入两个数:\n");
scanf("%d%d",&b,&n);
if(ExtendedEuclid(n,b,&z))
printf("%d和%d互素,乘法的逆元是:%d\n",b,n,z);
else
printf("%d和%d不互素,最大公约数为:%d\n",b,n,z);
return 0;
}
int ExtendedEuclid( int f,int d ,int *result)
{
int x1,x2,x3,y1,y2,y3,t1,t2,t3,q;
x1 = y2 = 1;
x2 = y1 = 0;
x3 = ( f>=d )?f:d;
y3 = ( f>=d )?d:f;
while( 1 )
{
if ( y3 == 0 )
{
*result = x3;
return 0;
}
if ( y3 == 1 )
{
*result = y2;
return 1;
}
q = x3/y3;
t1 = x1 - q*y1;
t2 = x2 - q*y2;
t3 = x3 - q*y3;
x1 = y1;
x2 = y2;
x3 = y3;
y1 = t1;
y2 = t2;
y3 = t3;
}
}
这是一个错误的算法啊
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
想去大学城摆个小夜市,卖什么好呢?新奇好卖
吉林大学在黑龙江收一表第二志愿么?如果有
去韩国,在明洞专卖店购买护肤品好还是去免税
如何辨别小也香水真假
人合美食广场在哪里啊,我有事要去这个地方
i5 4590先不配显卡可以么
雷克萨斯为什么只出自然吸气的发动机
淡盐水怎么配 用什么盐
我看上一新疆姑娘,可是新疆姑娘说要找新疆男
世子的侯门悍妻 这类型的小说 都有哪些
亨利水处理设备有限公司我想知道这个在什么地
香港机场烧鹅饭在那里
苏州华东电力机具厂地址在哪,我要去那里办事
作文德与得
一条龙洗车怎么去啊,有知道地址的么
推荐资讯
对英语的看法中文
在深圳龙华怎么坐车到石岩的艾美特
游戏《龙拳3》里,人物都是出自哪部电影的?
我脚的大拇指疼了几天 后来上过一次药突然就
瑞纳轮胎多久换
电视被雷打坏了,还能修吗?
孔子说:“己欲立而立人,己欲达而达人。”这
amd a8 7600处理器相当于intel什么处理器?
成都哪有好看地又便宜的手机卖呀
大神帮小弟看看这个程序写的对吗。 程序要求
邮箱534057450@qq,com
天语茶楼地址有知道的么?有点事想过去
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?