JAVA 输入两个正整数m,n(用长整数表示),计算最大公约数 要代码

作者&投稿:滑发 (若有异议请与网页底部的电邮联系)
由键盘输入两个正整数m、n(m、n用长整数表示),计算它们的最大公约数。~

#include

//辗除法
int gcd(int a, int b)
{
int c,d;
if (a<b)
{
c = b;
b = a;
a = c;
}

while(b!=0)/*利用辗除法,直到b为0为止*/
{
d = a % b;
a = b;
b = d;
}
return a;
}

int main()
{
int a,b;
printf("请输入要求最大公约数的两个数:
");
scanf ("%d%d",&a,&b);
printf("gcd(%d, %d) = %d
", a, b, gcd(a, b));

return 0;
}

#include
int hcf(int m,int n);
int main()
{
int m,n;
scanf("%d%d",&m,&n);
int max;
max = hcf(m,n);
printf("%d",max);
getchar();
return 0;
}
int hcf(int m,int n)
{
int temp = n;
if(m < n)
temp = m;
int i;
for(i=temp;i>1;i--)
{
if(m%i == 0 && n%i == 0)
{
return i;
}
}
return 1;
}


import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;



public class gongyueshu {


/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

int a = 0;

 System.out.print("请输入m:");

 BufferedReader strin=new BufferedReader(new InputStreamReader(System.in));

 try {

a=Integer.parseInt(strin.readLine());

} catch (NumberFormatException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

int b = 0;

 System.out.print("请输入一个n:");

 BufferedReader strin2=new BufferedReader(new InputStreamReader(System.in));

 try {

b=Integer.parseInt(strin2.readLine());

} catch (NumberFormatException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

int flag = 0;

for (int i = 1; i <= a; i++) {

if(a%i==0){

if(b%i==0){

flag=i;}

}

}

System.out.println("最大公约数为"+flag);

}


}

恩,这样就妥了,万望采纳呀



int s1=1;//假设最大公约数是1.
for(int i=1;i<=n;i++){
    //m、n都能被i整除,说明i是m、n的公约数
    if(m%i==0&&n%i==0){
        s1=i;
    }
}
循环到最后就是公约数中最大的数,也就是最大公约数


public class maxgy{
    public static Integer getmaxgy(Integer m,Integer n){
        Map<Integer,Integer> mmap = new HashMap<Integer,Integer>();
        for(Integer i=1;i<=m;i++){
            if(m%i==0){
                mmap.put(i,i);
            }
        }
         
         Map<Integer,Integer> nmap = new HashMap<Integer,Integer>();
         for(Integer i=1;i<=n;i++){
            if(n%i==0){
                nmap.put(i,i);
            }
        }
         
        List<Integer> xtarray = new ArrayList<Integer>();
        for(Entry<Integer,Integer> ent :mmap.entrySet()){
            if(nmap.containsKey(ent.getKey())){
                xtarray.add(ent.getValue());
            }
        }
         
        Integer max=0;
         
        for(Integer i : xtarray){
            if(i > max){
               max = i;
            }
        }
         
        return max;
    }
}

 我这个回答太垃圾了 望参考。  嘎嘎  技术 太隔水了



完整代码如下
刚跑了下 没问题
import java.util.Scanner;

public class test {

public static void main(String[] args) {

System.out.print("请输入两个正整数:");
Scanner scaner = new Scanner(System.in);
long m = scaner.nextInt();
long n = scaner.nextInt();
System.out.println("最大公约数为:" + maxGongYueShu(m, n));
}

public static long maxGongYueShu(long m, long n) {
long i;
if (m > n) {
i = m % n;
while (i != 0) {
m = n;
n = i;
i = m % n;
}
return n;
} else {
i = n % m;
while (i != 0) {
n = m;
m = i;
i = n % m;
}
return m;
}
}
}

public class A
{
    public static long gcd(long m, long n)
{
 if (m == 0)
  return n;
 if (n == 
0)
  return m;
 if (m < n)
 {
  long tmp = m;
  m = n;
  n = tmp;
 }
 while (n != 0)
 {
  long tmp = m % n;
  m = n;
  n = 
tmp;
 }
 return m;
}
}



赫山区18472845439: java从键盘输入两个正整数M,N组成.输出一个整数,表示介于M,N之间(包括M,N)的素数的数量.(素数就是从键盘输入两个正整数M,N组成.输出一个整数,... -
那中鼻炎:[答案] import java.util.Scanner;public class Test{ public static void main(String args[]) { Scanner scan = new Scanner(System.in); int count = 0; int num = scan.nextInt(); for(int i = 1;i<=num;i++){...

赫山区18472845439: 输入两个正整数m和n,求其最大公约数和最小公倍数.用Java语言编写 -
那中鼻炎: //求m和n的最大公约数 public static int gongyue(int m, int n) { while(m % n != 0) { int temp = m % n; m = n; n = temp; } return n; } //求m和n的最小公倍数 public static int gongbei(int m, int n) { return m * n / gongyue(m, n); } }

赫山区18472845439: 题目:输入两个正整数m和n,求其最大公约数和最小公倍数. (java)1.程序分析:利用辗除法请问,什么是辗除法? -
那中鼻炎:[答案] 设两数为a、b(b
赫山区18472845439: java从键盘输入两个正整数M,N组成. 输出一个整数,表示介于M,N之间(包括M,N)的素数的数量.(素数就是 -
那中鼻炎: import java.util.Scanner; public class Test {public static void main(String args[]){Scanner scan = new Scanner(System.in);int count = 0;int num = scan.nextInt();for(int i = 1;i<=num;i++){count +=i;}System.out.println(count);} }

赫山区18472845439: 输入两个正整数M,N,写一个程序计算其最大公约数. -
那中鼻炎: #include int main() { printf("请输入M和N的数值:\n"); int m,n; scanf("%d%d",&m,&n); int t; int a; for(t=1;t { if(m%t==n%t) { a=t; } } printf("M和N的最大公约数是:%d",a); return 0; }

赫山区18472845439: 编写程序:输入两个正整数m和n,计算它们的最大公约数和最小公倍数. -
那中鼻炎: #include using namespace std ; //最大公约数-Greatest Common Divisorint gcd(int m, int n){ return n == 0 ? m : gc...

赫山区18472845439: 编写程序,输入两个正整数m和n,输出它们的最小公倍数和最大公约数 -
那中鼻炎: #include using namespace std; int gun(int a, int b) { int i = (a while(i>=2) { if(a%i==0 && b%i==0) return i; i--; } return 1; } int hun(int a, int b) { int i = (a>b)?a:b; while(i { if(i%a==0 && i%b==0) return i; i++; }return (a*b); } int main() { int a,b; cout cin>>a>>b; cout cout return 0; } 不明白我可以在线回答

赫山区18472845439: 如何用while求解:输入两个正整数m,n,求其最大公约数和最小公倍数 -
那中鼻炎: #include<stdio.h> void main( ) { int p,r,n,m,temp; printf("请输入两个正整数:"); scanf("%d,%d",&n,&m); if(n<m) { temp=n; n=m; m=temp; } p=n*m; while(m!=0) { r=n%m; n=m; m=r; } printf("它们的最大公约数为:%d\n",n); printf("它们的最小公倍数为:%d\n",p/n); }

赫山区18472845439: 编写函数:输入两个正整数m,n,求它们的最大公约数和最小公倍数 -
那中鼻炎: #include<stdio.h>#include<math.h> int fun_y(int,int); int fun_b(int,int); main() { int a,b,gy,gb; printf("输入两个整数:\n"); scanf("%d%d",&a,&b); gy=fun_y(a,b); gb=fun_b(a,b); printf("最大公约数是:%d\n最小公倍数是:%d\n",gy,gb); } ...

赫山区18472845439: 由键盘输入两个正整数m、n(m、n用长整数表示),计算它们的最大公约数.#include"stdio.h"main(){\x05long m,n,c;\x05scanf("%d%d",&m,&n);L1:if(m==n)... -
那中鼻炎:[答案] #include //辗除法 int gcd(int a,int b) { \x05int c,d; \x05if (a

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网