AI编程助手
AI免费问答

java中如何计算最小公倍数

王林   2019-11-27 14:39   6411浏览 转载

问题描述:

已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。

输入格式:

输入一个正整数N。

输出格式:

输出一个整数,表示你找到的最小公倍数。

样例输入:

9

样例输出:

504

数据规模与约定:

1

在线学习视频教程推荐:java课程

思路:

首先声明几个概念:

两个非0相邻自然数的最小公倍数是它们的乘积;相邻两个奇数的最小公倍数是它们的乘积;相邻两个偶数(0除外)的最小公倍数是它们乘积的一半。

现在上升到三个数的最小公倍数,要按照N的奇偶性分两种情况:

一、当n为奇数:n、n-1、n-2的乘积

二、当n为偶数:n-1、n-2、n-3是一组极大解,如果答案要大于当前值,只能是大于这3个数的乘积,那么只能把其中一个数变成n,并且三个数也要两两互质。n、n-2、n-3偶偶奇明显不互质;n、n-1、n-3偶奇奇;n、n-1、n-2偶奇偶明显不互质。

那么答案只能是n-1、n-2、n-3或者是n、n-1、n-3。但是n、n-3虽然是一个奇数,一个偶数,但是它们不连续可能不互质例如5,6,3三个数。

n为奇数:n、n-1、n-2

n为偶数: n是3的倍数 n-1、n-2、n-3

n不是3的倍数 n、n-1、n-3

示例如下:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        long N=input.nextLong();
        long temp=0;
        if(N<p>技巧:考虑N</p><p>推荐java相关文章教程:<a href="https://www.php.cn/java/guide/" target="_blank">java开发入门</a></p>

Java免费学习笔记:立即学习
解锁 Java 大师之旅:从入门到精通的终极指南

声明:本文转载于:CSDN,如有侵犯,请联系admin@php.cn删除