算法训练 最大最小公倍数(此题是坑)
来源:互联网 发布:mac app store更改用户 编辑:程序博客网 时间:2024/04/30 23:02
如文章题目所说,这题就是个坑,至本文发布的时候还没填上!它的测试数据是错误的!
题目:
问题描述
已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。
输入格式
输入一个正整数N。
输出格式
输出一个整数,表示你找到的最小公倍数。
样例输入
9
样例输出
504
数据规模与约定
1 <= N <= 106。
#include <iostream>#include <queue>using namespace std;int c_div(int m, int n){if (m < n){int t = m;m = n;n = t;}int i;for (i=n; i>0; --i){if (n%i==0 && m%i==0){return i;}}return 0;}long long c_mul(int n1, int n2, int n3){int d12 = c_div(n1, n2);n2 /= d12;int d13 = c_div(n1, n3);n3 /= d13;int d23 = c_div(n2, n3);n3 /= d13;return (long long)n1*n2*n3;}int main(){long long n;cin>>n;if (n%2 == 0){if(n == 2){cout << 2 << endl;}else{long long a1, a2, a3, a4;a1 = c_mul(n-2, n-1, n);a2 = c_mul(n-3, n-1, n);a3 = c_mul(n-3, n-2, n);a4 = c_mul(n-3, n-2, n-1);priority_queue<long long> q;q.push(a1);q.push(a2);q.push(a3);q.push(a4);cout << q.top() << endl;}}else{if (n == 1){cout << 1 << endl;}else{cout << n*(n-1)*(n-2) << endl;}}return 0;}
就是很普通的做法。先将N分为奇数以及偶数,如果为奇数,则任取3个的最大最小公倍数定为n*(n-1)*(n-2);如果为偶数,取最后四个并从四个取三个求最小公倍数,再从里面取最大的一个。(没给出证明→_→)
然后本人的评测状态如下:
与很多acer一样,没有as掉。问了下室友才知道这题的测试数据错误。。现在还没改。。呐,看下面:
这题真是困扰了我几天。。趁此机会我也玩耍了一番(= =又偷懒了)。
嘛,也巩固了不少知识。甚么求质数,公约数,公倍数的,又重新看了下。这题也用了下优先级队列→_→就是试一下
0 0
- 算法训练 最大最小公倍数(此题是坑)
- 最大最小公倍数 ( 算法训练 )
- 算法训练 最大最小公倍数
- 算法训练 最大最小公倍数
- 算法训练 最大最小公倍数
- 算法训练 最大最小公倍数
- 算法训练 最大最小公倍数
- 算法训练 最大最小公倍数
- 算法训练 最大最小公倍数
- 算法训练 最大最小公倍数
- 算法训练 最大最小公倍数
- 算法训练 最大最小公倍数
- 算法训练 最大最小公倍数
- 算法训练 最大最小公倍数
- 算法训练 最大最小公倍数
- 算法训练 最大最小公倍数
- 算法训练 最大最小公倍数
- 算法训练 最大最小公倍数
- Android中的广播
- make savedefconfig
- Android中Context详解
- Java过滤器和拦截器
- Json系列之三 让你打印完美的json格式
- 算法训练 最大最小公倍数(此题是坑)
- iOS开发之数组、字典、集合
- CodeForces 496B Secret Combination
- 内部类和外部类的访问细节
- poj1068Parencodings
- 关于ip route 线路负载均衡的一些总结
- 使用 ip route , ip rule , iptables 配置策略路由
- ORACLE 11g安装图解
- javaweb-day07-1&2(Servlet - Cookie)