#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)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)