一.题目名称

“求N个数的最大公约数和最小公倍数”

二.题目内容

用C/C++/Java/Python实现程序解决问题。
已知正整数a0,a1,b0,b1,设某未知正整数x满足:
1、 x和a0的最大公约数是a1;
2、 x和b0的最小公倍数是b1。

输入第一行为一个正整数n,表示有n组输入数据。接下来的n行每行一组输入数据,为四个正整数a0,a1,b0,b1,每两个整数之间用一个空格隔开。输入数据保证a0能被a1整除,b1能被b0整除。
输出格式
输出共n行。每组输入数据的输出结果占一行,为一个整数。
对于每组数据:若不存在这样的x,请输出0;
若存在这样的x,请输出满足条件的x的个数;
样例输入

2
41 1 96 288
95 1 37 1776

样例输出

6
2

三.算法设计

1.输入n,以及利用对n循环输入a0,a1,b0,b1
2.求最大公因数,定义一个数组x,利用循环将符合条件的值存放在数组x中
3.求最小公倍数,定义一个数组y,利用循环将符合条件的值存放在数组y中
4.遍历比较数组x和y,存在相等数值时,count++

改进:2,3定义一个数组,将符合条件的值赋给数组
4.遍历数组,当其值不为0时进行count++

四.代码

import java.util.Scanner;public class Hankson {public static void main(String[] args) {System.out.println("请输入一个正整数n,表示有n组输入数据");Scanner A = new Scanner(System.in);int n = A.nextInt();System.out.println("接下来的n行每行一组输入数据,为四个正整数a0,a1,b0,b1,每两个整数之间用一个空格隔开。输入数据保证a0能被a1整除,b1能被b0整除。\n");for (int i=0;i<n;i++) {Scanner B = new Scanner(System.in);int a0 = B.nextInt();int a1 = B.nextInt();int b0 = B.nextInt();int b1 = B.nextInt();greatest(a0,a1,b0,b1);}}public static void greatest(int a0,int a1,int b0,int b1) {int []x=new int[100];int i=0;int count=0;for(int num=b1;num>=1;num--){if(a0%a1==num%a1&&b1%b0==b1%num&&b0%num!=0){x[i]=num;i++;}}for (int j=0;j<x.length;j++){if(x[j]!=0){count++;}}System.out.println(count);}}

五.测试

1.符合条件的值输出测试

失败
问题1:32,24等数字并不符合96与它的最小公倍数为288,这些数字与96的最小公倍数为96本身。
问题2:不能取到大于41而且满足条件的值
改进:加上条件b0%num!=0;更改for循环中的num初始值

成功

2.符合条件的值个数测试

由于java好像无法在不清楚数组长度的时候定义。要先声明数组长度,不然系统不会为他分配内存空间。所以符合条件的个数不能通过x.length返回。

成功

3.输入另一组数据测试

出现错误,数组越界异常
更改数组长度为100

成功

4.同时输入2组进行测试最开始输入n行的循环代码

成功

六.调试

1.在进行最大公因数测试的时候出现问题,对此模块进行调试

1.1发现低级错误,由于将int i=0写在循环里面,所以每次循环只改变x[0]的值
1.2发现定义2个数组太浪费了,于是改成定义数组,同时满足2个已知条件的时候,在进行赋值。
2.对输入2组数据进行调试

由于执行到要从键盘输入数据的时候会跳出,显示没有变量
所以现在还不知道怎么实现先输入2行数据回车后,再输出每一行对应的结果

七.总结

1.利用循环操作的时候一定要细心书写循环的条件
2.进行算法设计的时候考虑空间时间问题
3.数组定义的必须得先定义一个长度
对于第二组数据,我感觉结果不止2个,好像测试输出的222,444,111等也可以
hexo+github博客:https://suyufan.github.io/

java最大公约数最小公倍数的逆问题相关推荐

  1. ACMNO.22 C语言-公约公倍2 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。 输入 两个数 输出 最大公约数 最小公倍数

    题目描述 写两个函数,分别求两个整数的最大公约数和最小公倍数, 用主函数调用这两个函数,并输出结果两个整数由键盘输入. 输入 两个数 输出 最大公约数 最小公倍数 样例输入 6 15 样例输出 3 3 ...

  2. 每日算法练习之最大公约数最小公倍数

    利用辗转相除判断最大公约数  最小公倍数 //2016-8-22题目:输入两个正整数m和n,求其最大公约数和最小公倍数. //1.程序分析:利用辗除法. public class GcdTest {p ...

  3. 最大公约数,最小公倍数,质因式分解

    目录 简单代码算出最大公约数,最小公倍数: 辗转相除法得到最大公约数: 两数相乘倒序最小公倍数: 分解质因式, 打印输出, 并且存到列表 主程序: 由质因式得到最小公倍数: 简单代码算出最大公约数,最 ...

  4. 辗转相除求最大公约数最小公倍数 扩展欧几里得算法

    最大公约数最小公倍数 #include<stdio.h>int gcd(int a, int b) {return (b ? gcd(b, a % b):a); }int lcm(int ...

  5. c++求几个数的最大公约数_最大公约数,最小公倍数 A3

    点击上方"蓝字"关注,酷爽一夏最大公约数,最小公倍数 15.有三根小棒,分别长12 厘米.44 厘米.56 厘米.要把它们截成同样长的小棒,不许有剩余,每根小棒最长能有多少厘米?一 ...

  6. 数论相关_最大公约数最小公倍数

    文章目录 最大公约数 Greatest Common Divisor 多个数的最大公约数 最小公倍数 Least Common Multiple 多个数的最小公倍数 Tag 最大公约数 Greates ...

  7. Python 最大公约数/最小公倍数算法

    Python 最大公约数算法 最大公约数:能够同时被两个数整除的那个最大的数. #最大公约数 (穷举法) x,y = input().split() x,y = int(x),int(y) small ...

  8. C语言 | 最大公约数最小公倍数

    例45:C语音编程实现求两个数的最大公约数和最小公倍数 解题思路:最大公因数,也称最大公约数.最大公因子,指两个或多个整数共有约数中最大的一个:最小公倍数是指两个或多个整数公有的倍数叫做它们的公倍数, ...

  9. java 最大公约数和最小公倍数

    题目 题目:输入两个正整数m和n,求其最大公约数和最小公倍数. 比如:12和20的最大公约数是4,最小公倍数是60. 说明:break关键字的使用 代码一 package l2_for; //题目:输 ...

最新文章

  1. 影像组学视频学习笔记(23)-主成分析PCA、降维和特征筛选的区别、Li‘s have a solution and plan.
  2. Repeater 使用小技巧 内部radio 横排
  3. 【AWS】AWS云计算赋能数字化转型专题研讨会圆满落幕
  4. 使用jmeter 设计流程发起测试
  5. Java对接SAP平台接口
  6. 使用代码创建Hybris storefront订单时遇到错误No result for the given example [TitleModel (
  7. 【ESIM】论文阅读笔记:文本蕴含之ESIM
  8. 常用三大java框架
  9. Object C中创建线程的方法有NSThread,GCD, NSOperation
  10. python:库文件整理
  11. 微信小程序跳转到另一个小程序(往返)
  12. minigui学习笔记四
  13. ENSP模拟实验OSPF虚链路
  14. 汉诺塔在VC控制台的图形演示
  15. 360°全方位解析C语言的三目运算符
  16. java数组可以包含对象吗_数组可以包含对象类型的元素吗_对象数组
  17. 基于zynq的SGMII调试
  18. 曝英伟达将新发低功耗RTX 3050显卡
  19. php把字符串做为代码执行的函数eval
  20. 客户留存的4个产品策略

热门文章

  1. 你想了解的数据架构都在这
  2. 一-Class文件结构
  3. CDH/CM:创建集群多节点,通过 VMware 安装 Centos 7 虚拟机 CentOS Linux release 7.6.1810
  4. win10搭建redis集群
  5. placement new介绍
  6. inner.HTML与inner.Text的区别
  7. RPG游戏《黑暗之光》流程介绍与代码分析之(八):装备系统的实现
  8. serializearray php,jQuery序列化表单 serialize() serializeArray()
  9. pytorch+win10(无GPU)+pycharm环境搭建
  10. 微信使用习惯调查简单解读