• 题解【洛谷P5436】【XR-2】缘分


    题目背景

    世间万物都置身于缘分编织的大网中。缘分未到,虽历经千劫,却不能相遇。缘分到了,在草原上都能等到一艘船。——《一禅小和尚》

    题目描述

    一禅希望知道他和师父之间的缘分大小。可是如何才能知道呢?

    一禅想了个办法,他先和师父约定一个正整数 (n),接着他们各自在心里想一个不超过 (n) 的正整数。

    一禅认为,他和师父心里想的这两个数的最小公倍数越大,则意味着他和师父之间的缘分越大。

    师父觉得这个办法很合适,不过他想知道这两个数的最小公倍数最大会是多少。

    师父的数学不太好,于是问一禅。一禅也觉得这个问题很困难,他希望你能告诉他答案。

    输入输出格式

    输入格式

    本题有多组数据。

    第一行一个正整数 (T),表示数据组数。

    接下来的 (T) 行,每行一个正整数 (n),表示一禅和师父约定的正整数。

    输出格式

    对每组数据,一行一个正整数,表示答案。

    输入输出样例

    输入样例#1

    1
    3

    输出样例#1

    6

    说明

    【样例 (1) 说明】

    不超过 (3) 的两个正整数的最小公倍数的最大值为 (mathrm{lcm}(2,3) = 6)

    【数据规模与约定】

    (50\%) 的数据,(1 le T,n le 100)

    (100\%) 的数据,(1 le T le 100, 1 le n le 10^9)

    题解

    一道简单的数学题。

    很容易知道,(n)(n-1)是互质的。

    而互质的两数的(mathrm{lcm})就是两数的乘积。

    有两个要注意的点:

    1. 最后答案会超出(int),需要开(long) (long)
    2. 注意特判(n=1)时,答案为(1)

    代码

    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <algorithm>
    #include <cmath>
    #include <cctype>
    #define int long long
    
    using namespace std;
    
    inline int gi()
    {
        int f = 1, x = 0; char c = getchar();
        while (c < '0' || c > '9') { if (c == '-') f = -1; c = getchar();}
        while (c >= '0' && c <= '9') { x = x * 10 + c - '0'; c = getchar();}
        return f * x;
    }
    
    int t, n;
    
    signed main()
    {
    	cin >> t;
    	while (t--)
    	{
    		cin >> n;
    		if (n == 1) cout << 1 << endl;//特判
    		else cout << n * (n - 1) << endl;//输出两个数的乘积
    	}
    	return 0;
    }
    
  • 相关阅读:
    第五节、矩阵分解之LU分解
    第四节、逆矩阵与转置矩阵
    第三节、矩阵乘法
    第二节、矩阵消元(高斯消元)
    重学线代——声明篇
    第一节、方程组的几何解释
    String类
    Mycat的安装及配置
    使用InfluxDB、cAdvisor、Grafana监控服务器性能
    Rancher的使用
  • 原文地址:https://www.cnblogs.com/xsl19/p/11114691.html
Copyright © 2020-2023  润新知