PS:两个的乘积就等于最大公约数和最小公倍数的乘积,所以最小公倍数和最大公约数只要就一个另一个就能算出。因为楼主是3个问题,所以还是用三个函数来分别求解:
//最小公倍数
int getMinMultiple(int a, int b)
{
for(int i=(a>b)?a:b; i<=a*b; i++)
{
if(i%a==0 && i%b==0)
{
//return放在for循环内部是因为一定有最小公倍数
return i;
}
}
}
//最大公约数
int getMaxDivisor(int a, int b)
{
int maxDivisor = 0;
for(int i=(a>b)?b:a; i>=1; i--)
{
if(a%i==0 && b%i==0)
{
maxDivisor = i;
//找到后就跳出for循环
break;
}
}
//return放在for循环外面是因为有可能没有最大公约数
return maxDivisor;
}
//素数
int judgePrime(int a)
{
int result = 0;
#include
#include
int q(int c,int d)
{
int i,n,min,x,y;
x=c;
y=d;
min=(c
if(c%i==0&&d%i==0)
{
c=c/i;
d=d/i;
min=(c
}
}
printf("最大公约数:%d\n",x/c);
printf("最小公倍数:%d\n",c*d*x/c);
}
int main(void)
{
int a,b,n;
printf("input a:");
scanf("%d",&a);
for(;;)
{
if(a<2)
{
printf("reinput a:");
scanf("%d",&a);
}
else break;
}
printf("input b:");
scanf("%d",&b);
for(;;)
{
if(b<2)
{
printf("retry:");
scanf("%d",&b);
}
else break;
}
q(a,b);
return 0;
}
//求最大公约数和最小公倍数的。
#include
main()
{
int m,i,k;
scanf("%d",&m);
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>=k+1)printf("%d is prime number",m);
else
printf("%d is not prime number",m);
}
//判断是否为素数。
已写好,采纳后立即发送你邮箱。
详细注释,对以上问题教到会为止。