最小公倍数 最大公约数

来源:互联网 发布:chmod u x mysql.sh 编辑:程序博客网 时间:2024/06/05 15:16

http://zhidao.baidu.com/link?url=VyT-yMLRWSEyrBFF1AI7kRnee1v5mQ-a-XPXts6qdIuhmFE03z87xaqwqSHp4mzIbI4HHQEpwrWtWSPtrotG0_

http://blog.csdn.net/iwm_next/article/details/7450424

http://bbs.bccn.net/thread-293959-1-1.html

http://www.jb51.net/article/80979.htm

http://www.2cto.com/kf/201501/367832.html

http://blog.sina.com.cn/s/blog_5e8098930100hy7l.html#commonComment


#include<iostream>
using namespace std;
int  main()
{int m,n,r,t,temp;
cin>>m>>n;
 if(n==0||m==0)
     return 0;
temp=m*n;
if(m<n){t=m,m=n,n=t;}
while((r=m%n)!=0)
{m=n;
n=r;}
cout<<temp/n<<endl;
} //最小公倍数



方法2:

#include<iostream>
using namespace std;
int main()
    {
    int a,b;
    cin>>a>>b;
    for(int i=a;i>0;i--)
        {
        if(a%i==0&&b%i==0)
            {
            cout<<a*b/i;
            return 0;
        }
    }
}

求数组的最大公约数: 

//求最大公约数  方法1
#include<iostream>
#include<string.h>
using namespace std;
int zd(int* a, int n)
{
if (n == 1)
{
return a[0];
}
int y;
if (a[0] > a[1])
{
int t;
t = a[0];
a[0] = a[1];
a[1] = t;
}
while (( y = a[1] % a[0]) != 0)
{
a[1] = a[0];
a[0] = y;
}

for (int i = 1; i < n - 1; i++)
{
a[i] = a[i + 1];

}
return  zd( a, --n);
}
int main()
{
int a[] = {8,2,48,1,22,17};//数组没有/0
cout<<zd(a,4)<<endl;
return 0;
}



//求数组最大公约数 方法2
#include<iostream>
#include<string.h>
using namespace std;
//int zd(int*a, int n) //可行
//{
// int  p ;
//
// for (int i = a[0]; i > 0; i--)
// {
// p = 2;
// for (int k = 0; k < n; k++)
// {
// p = p&&(a[k]%i==0);
//
// }
// if (p==1)
// return i;
//
// }
//
//}


int zd(int*a, int n)
{   int  p;
for (int i = a[0]; i > 0; i--)
{   p = 0;
for (int k = 0; k < n; k++)
{p = p ||(a[k] % i) ;
}
if (p == 0)
return i;
}
}
int main()
{
int a[] = { 2, 6,2 ,12,2 ,18 ,2, 2 ,22 ,30 };//数组没有/0
cout << sizeof(a) / sizeof(a[0])<<endl;
cout<<zd(a,sizeof(a)/sizeof(a[0]))<<endl;
return 0;
}


//方法3 java

 package lianbiao;

import java.util.Scanner;

public class Main3 {

public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
while(sc.hasNext())
{
int n=sc.nextInt();
int[] a=new int[n];
for(int i=0;i<n;i++)
{
a[i]=sc.nextInt();
}
int index=0;
for(int i=0;i<n;i++)
{
if(a[i]<a[index])
index=i;
}


for(int j=a[index];j>0;j--)
{
int s=0;
for(int i=0;i<n;i++)
{

if(a[i]%j==0)
s++;
}
if(s==n)
    {
System.out.println(j);
break;
    }

}
}
}
}

0 0
原创粉丝点击