函数互质数用c语言来做 c++互质
判断两个数a,b是否为互质数的程序,用C语言编写?
两个数互质,就是说两个数的没有公共因子,即最大公约数是1
创新互联公司主营永济网站建设的网络公司,主营网站建设方案,app软件定制开发,永济h5微信平台小程序开发搭建,永济网站营销推广欢迎永济等地区企业咨询
程序如下:
#include stdio.h
int GCD(int x,int y)//最大公约数函数,欧几里德算法
{
int a,b,c;
if(xy)
{a=x,b=y;}
else
{a=y,b=x;}
while ((a%b)!=0)
{
c=a%b;
a=b;
b=c;
}
return b;
}
int main()
{
int m,n;
printf("please input two positive numbers:");
scanf("%d%d",m,n);
if(GCD(m,n)1)
printf("两个数不是互质的。\n");
else
printf("两个数是互质的。\n");
}
输入示例:100 3
输出:两个数是互质的。
程序在DEV C++下调试通过,最大公约数计算使用的是欧几里德算法(数论基础知识),看过就明白了。
C语言,互质数问题,用指针。用带填充原程序做
#includestdio.h
#includestring.h
#includemalloc.h
#includeconio.h
#includemath.h
#include stdlib.h
#include time.h
#include stdlib.h
void is_huzhishu(int x,int y, int* jieguo)
{
int temp;
while( y != 0)
{
temp = y;
y = x % y;
x = temp;
}
if(x == 1)
{
*jieguo = 1;
}
else
{
*jieguo = 0;
}
}
int main(void)
{
int x,y,jieguo;
printf("请输入两个正整数,以英文逗号分隔\n");
scanf("%d,%d", x, y);
is_huzhishu(x, y, jieguo);
if(jieguo)
{
printf("YES\n\n");
}
else
{
printf("NO\n\n");
}
return 0;
}
C语言 互质数问题(最好有点解释)
/*
21 17
是
2 4
不是
9 3
不是
13 39
不是
q
Press any key to continue
*/
#include stdio.h
int MaxFactor(int m,int n) { // 最大公约数
int t;
if(n m) { t = n;n = m;m = t; }
for(t = m;t 0;t--) {
if(m % t == 0 n % t == 0)
return t;
}
return 1; // 永远得不到执行。
}
void is_huzhishu(int x,int y,int *res) {
if(1 == MaxFactor(x,y)) *res = 1;
else *res = 0;
}
int main() {
int m,n,res;
while(scanf("%d%d",m,n) == 2) {
is_huzhishu(m,n,res);
if(res) printf("是\n");
else printf("不是\n");
}
return 0;
}
当前文章:函数互质数用c语言来做 c++互质
URL标题:http://myzitong.com/article/dojdshp.html