用C语言写一个判断互质的程序

用C语言写一个判断互质的程序,第1张

#include <stdio.h>

#include<stdlib.h>

main()

{

int n,i,c,j=0,k,sum=0,a[40]

for(i=0i<40i++)

a[i]=0

printf("input n:\n")

scanf("%d",&n)

if(n==1)

printf("10")

for(i=2i<=ni++)

{

if(n%i==0)

{

a[j]=i

j++

}

}

for(i=1i<=100i++)

{

for(k=0k<jk++)

{

if(i%a[k]!=0)

c=1

else

c=0

}

sum=sum+c

}

printf("%d",sum)

getch()

}

程序如上

望采纳

应该是两个数

互质

,不是互为质数

两个数互质的意思是,两个数的

最大公约数

是1

它们之间没有除了1以外的共同因数

判定两个数属否互质,实际就是求两个数的最大公约数

如果最大公约数是1,那么这两个数是互质的

如果不为1,那么两个数不会互质

求两个数的最大公约数,可以用辗转相法

下面是我写的一段代码,输入的两个数是x1,x2

程序可以判断两个数是否互质,如果不不互质,会告诉你最大公约数

x1=100

x2=75

a=x1b=x2

while(a&&b)

if

a>=b

c=mod(a,b)

a=c

else

c=mod(b,a)

b=c

end

end

if

a==1||b==1

disp('互质')

elseif

a~=0

disp(['不互质,最大公约束'

num2str

(a)])

elseif

b~=0

disp(['不互质,最大公约束'

num2str(b)])

end

如果可以用系统函数就更简单,可以用系统自带的求最大

公倍数

的函数gcd

c=gcd(x1,x2)

if

c==1

disp('互质')

else

disp(['不互质,最大公约束'

num2str(c)])

end

#include<stdio.h>

int main()

{

int a,b,t,an,bn

scanf("%d%d",&an,&bn)

a = an

b = bn

if(a <b)

{

t = a

a = b

b = t

}

while(t=a%b)

{

a = b

b = t

}

if(b == 1)

{

printf("%d和%d互质",an,bn)

}

else

{

printf("%d和%d的最大公约数为%d",an,bn,b)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11710803.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存