1.最大公约数及最小公倍数
#include<iostream>
void main()
{
int fun(int m,int n,int &z);
int a;
int b;
int z;
int u;
std::cout<<"请输入两个整数。"<<"\n";
std::cin>>a>>b;
u=fun(a,b,z);
std::cout<<"两个数的最大公约数为:"<<u<<"\n";
std::cout<<"两个数的最小公倍数为:"<<z<<"\n";
}
int fun(int m,int n,int &z)
{
int c=0,d=0,u;
if(m==n)
{
c=m;
d=m;
}
if(m>n)
{
int u,v;
for(u=n;u>0;u--)
{
if(m%u==0&&n%u==0)
{
c=u;
break;
}
}
for(v=m;v<=m*n;v++)
{
if(v%m==0&&v%n==0)
{
d=v;
break;
}
}
}
if(m<n)
{
int i,j;
for(i=m;i>0;i--)
{
if(m%i==0&&n%i==0)
{
c=i;
break;
}
}
for(j=n;j<=m*n;j++)
{
if(j%m==0&&j%n==0)
{
d=j;
break;
}
}
}
//std::cout<<"两个数的最大公约数为:"<<c<<"\n";
//std::cout<<"两个数的最小公倍数为:"<<d<<"\n";
u=c;
z=d;
return u;
}
二,特殊三位数
#include<iostream>
void main()
{
int fun();
fun();
}
int fun()
{
for(int i=100;i<999;i++)
{
int x,y,z;
int zxz(int a);
x=i/100;
y=i/10-x*10;
z=i%10;
if((zxz(x)+zxz(y)+zxz(z))==i)
std::cout<<"特殊三位数是:"<<i<<"\n";
}
return 0;
}
int zxz(int a)
{
int f;
if(a==0||a==1)
f=1;
else
f=zxz(a-1)*a;
return f;
}