列表

详情


NC214075. SimpleQuestion

描述

对于给定的两个正整数,求闭区间内能同时被整除的最大值,如果答案不存在输出

输入描述

输入三个正整数

输出描述

输出一个正整数,即答案。如果答案不存在输出

示例1

输入:

2 3 7

输出:

6

示例2

输入:

2 3 5

输出:

-1

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++(g++ 7.5.0) 解法, 执行用时: 2ms, 内存消耗: 448K, 提交时间: 2022-12-02 21:13:25

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,m,k;cin>>n>>m>>k;
    for(int i=k;i>=1;i--){
        if(i%n==0&&i%m==0){cout<<i;return 0;}
    }cout<<-1;
}

C(clang11) 解法, 执行用时: 5ms, 内存消耗: 368K, 提交时间: 2020-12-02 22:06:33

#include<stdio.h>
int main()
{int n,m,k,i;scanf("%d%d%d",&n,&m,&k);for(i=k;i>=1;i--)if(i%n==0&&i%m==0)break;
    if(i)printf("%d",i);
    else printf("-1");return 0;}

C++(clang++11) 解法, 执行用时: 4ms, 内存消耗: 380K, 提交时间: 2020-11-27 18:09:54

#include<bits/stdc++.h>
using namespace std;
int n,m,k;
int main(){
	cin>>n>>m>>k;
	int s = n*m/__gcd(n,m);
	if(k/s) cout<< s*(k/s)<<endl;
	else cout<<"-1"<<endl;
}

Python3(3.9) 解法, 执行用时: 26ms, 内存消耗: 2920K, 提交时间: 2020-12-08 14:38:18

import math

n, m, k = (int(i) for i in input().split())
target = math.lcm(n, m)
print(-1 if target > k else k // target * target)

上一题