当前位置: 代码迷 >> C语言 >> tc之最小公被数
  详细解决方案

tc之最小公被数

热度:201   发布时间:2006-10-19 19:03:00.0

参考这程序
#include<stdio.h>
void man(int x,int y);
void min(int x1,int y1);

void main()
{
int a,b;
printf("请分别输入两个数,并以空格隔空\n");
scanf("%d %d",&a,&b);
man(a,b);
min(a,b);

}

void man(int x,int y)
{
int p,a,b,i,j;
a=x;b=y;
if(a!=b&&a!=0&&b!=0){
if(a>b)
i=a;
else
i=b;
for(j=1;j<=i;j++)
if(a%j==b%j&&a%j==0&&b%j==0)
p=j;
else
continue;
if(p==1)
printf("没有最大公约数\n");
else
printf("最大公约数为%d\n",p);}
else
{
if(a==0&&b==0)
printf("没意义\n");
else
{ if(a==0||b==0)
printf("没有意义\n");
else{
p=1;
printf("最大公约数为%d\n",p);
}
}
}
}

void min(int x1,int y1)
{
int p,a,b,i,j,a1,b1,t;
a=x1;b=y1;a1=x1;b1=y1;
if(a!=0&&b!=0){
if(a>b)
i=a;
else
i=b;
for(j=1;j<=i;j++)
if(a%j==b%j&&a%j==0&&b%j==0)
{
p=j;
a1=x1/p;b1=y1/p;
t=a1*b1*p;
}
else
continue;
printf("最小公倍数为%d\n",t);}
else
printf("没意义\n");

}


----------------解决方案--------------------------------------------------------
/*大家看看我这个*/
#include<stdio.h>
#define N 10
int main()
{
int i,j,a[N+1];
long sum=1;
for(i=1;i<=N;i++)
{
a[i]=i;
}
for(i=2;i<N;i++)
{
for(j=i+1;j<=N;j++)
{
if(j%i==0)
{
a[j]/=i;
}
}
sum*=a[i];
}
printf("%ld\n",sum);
return(0);
}
----------------解决方案--------------------------------------------------------
  相关解决方案