题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=3092
题目大意:
给一个数n,求一个划分a1,a2,...ak 使得ans=lcm(a1,a2,..,ak)最大,输出ans%m。
解题思路:
对于一个划分肯定是任意的i,j gcd(ai,aj)=1最优。如果gcd(ai,aj)>1 则最小公倍数肯定小些。
预处理所有的质数,转为话一个完全背包问题。
由于lcm很大,所以取对数处理。
代码:
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstd