JAVA 输入两个正整数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;
}
}
那中鼻炎:[答案] 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