hdu 4627 The Unsolvable Problem (数论)
来源:互联网 发布:人工智能 经济学 论文 编辑:程序博客网 时间:2024/05/16 01:39
题意:
给你一个n(2<=n<= 109),让你寻找满这样的a和b:n=a+b且lcm(a,b)最大。输出最大的lcm(a,b)。
思路:
由最小公倍数最大可知,a和b应尽量接近。
当n=2*k+1时,易知a=k,b=k+1,因相邻的两个整数必定互质,它们的最小公倍数肯定最大
当n=2*k时,显然不能让a=k,b=k,此时最小公倍数就是k了。若k为偶数,令a=k-1,b=k+1,因相邻的奇数互质。若k为奇数,令a=k-2,b=k+2。
注意n=2的情况要特殊处理一下
#include<iostream>using namespace std;inline long long gcd(long long a, long long b){ return b?gcd(b,a%b):a;}inline long long lcm(long long a, long long b){ return a*b/gcd(a,b);}int main(){ long long T,n,k,ans; cin>>T; while(T--) { cin>>n; if(n==2) { cout<<1<<endl; continue; } k=n/2; if(n==2*k) { if(k%2==1) { ans=lcm(k-2,k+2); } else if(k%2==0) { ans=lcm(k-1,k+1); } } else if(n==2*k+1) { ans=lcm(k,k+1); } cout<<ans<<endl; } return 0;}
- hdu 4627 The Unsolvable Problem (数论)
- hdu - 4627 - The Unsolvable Problem
- HDU-4627-The Unsolvable Problem
- hdu 4627 The Unsolvable Problem
- HDU 4627 The Unsolvable Problem
- HDU 4627 The Unsolvable Problem 解题报告
- HDU 4627 The Unsolvable Problem 数学
- hdu 4627 The Unsolvable Problem(暴力)
- HDU 4267 The Unsolvable Problem
- hdu 4627 The Unsolvable Problem 多校第三场
- hdu 4627 The Unsolvable Problem【hdu2013多校3签到】
- HDU 4691 The Unsolvable Problem 后缀数组
- 2013多校联合3 G The Unsolvable Problem(hdu 4627)
- HDOJ 4627 - The Unsolvable Problem 打表观察..
- BUCT OJ 2264: The Unsolvable Problem
- 2013 Multi-University Training Contest 3 (g) The Unsolvable Problem
- POJ 2282 && HDU 1663 The Counting Problem(数论)
- UVa 100 / HDU 1032 / POJ 1207 The 3n + 1 problem (数论&Collatz序列周期)
- 傅立叶变换及应用1-傅立叶级数
- cmd.exe
- STL常用函数小结
- java入门学习(十一)逻辑运算符和位运算符
- accept()返回fd和listen fd的端口是一样吗
- hdu 4627 The Unsolvable Problem (数论)
- hdu--1710Binary Tree Traversals
- shared_ptr 实现
- Android对象序列化(Activity之间传递对象,Parcelable小例子)
- linux下Makefile文件的总结
- 2440开发板linux系统移植3G拨号上网收发短信(一)
- hdu 4631 Sad Love Story (暴力set+剪枝)
- Javarebel 实现热部署
- 使用jquery操作iframe