First Blood(暴力加剪枝)
来源:互联网 发布:怎么查淘宝数据 编辑:程序博客网 时间:2024/05/16 18:26
First Blood
Time Limit: 1000 ms Memory Limit: 64 MB
Total Submission: 79 Submission Accepted: 23
Total Submission: 79 Submission Accepted: 23
Description
盖伦是个小学一年级的学生,在一次数学课的时候,老师给他们出了一个难题:
老师给了一个正整数 n,需要在不大于n的范围内选择三个正整数(可以是相同的),使它们三个的最小公倍数尽可能的大。盖伦很想第一个解决这个问题,你能帮助盖伦拿到“first blood”吗?
老师给了一个正整数 n,需要在不大于n的范围内选择三个正整数(可以是相同的),使它们三个的最小公倍数尽可能的大。盖伦很想第一个解决这个问题,你能帮助盖伦拿到“first blood”吗?
Input
首先是一个正整数T,表示有T组测试数据
每组测试数据是一个正整数n(1<=n<=10^6)
每组测试数据是一个正整数n(1<=n<=10^6)
Output
对于每组测试数据,输出最大的最小公倍数,每个输出单独占一行
Sample Input
OriginalTransformed297
Sample Output
OriginalTransformed504210
暴力加剪枝,一开始我以为是数学后来发现不是的!
#include<cstdio>#include<iostream>#include<cmath>using namespace std;long long gcd(long long n,long long m){ long long a,b,c; a=n,b=m; while(b!=0) { c=a%b; a=b; b=c; } return n*m/a;}int main(){ long long t,i,j,k; long long n,sum,maxs,m,q; scanf("%lld",&t); while(t--) { scanf("%lld",&n); maxs=0; for(i=n;i>=1;i--) { if(i*i*i<maxs) { break; } for(j=n;j>=1;j--) { if(i*j*j<maxs) { break; } for(k=n;k>=1;k--) { if(i*j*k<maxs) { break; } m=gcd(i,gcd(j,k)); if(m>maxs) { maxs=m; } } } } printf("%lld\n",maxs); }}
0 0
- First Blood(暴力加剪枝)
- First Blood (最大最小公倍数)
- First Blood(C语言)
- 瀑布流(first blood。。。)
- First blood...
- First blood...
- First Blood
- first blood
- first blood
- first blood
- first blood!
- First blood
- First Blood
- first blood
- First Blood
- first blood
- first blood
- First Blood
- Factory工厂模式
- vim tab设置为4个空格
- 简单的Tcp链接文件传输程序
- socket通信之可靠和不可靠的原理
- ROM开发 系统下载应用开发
- First Blood(暴力加剪枝)
- js获取屏幕大小的方法
- ListView快速下滑,出现空白
- HTML5游戏实战之160代码实现黄金矿工
- windowsI/O模型之select模型
- 微信公众之智能硬件————序
- STL@map应用 hdu4941
- CSU 1658 IQ of XUEXX’s descendants 矩阵快速幂
- 求和(数学,等差数列)