链接
http://acm.hdu.edu.cn/showproblem.php?pid=6125
题解
这题太神辣!
所谓不被平方数整除,其实就是在乘积的质因数分解中,每个质数的幂次不超过 1 1 1
但是质数那么多…就不知道该如何下手
默默点开题解
发现有一点很重要的性质我似乎没想到
每个数 x x x都至多有一个大于 x \sqrt x x的质因子
不超过 500 500 500的素数有 2 , 3 , 5 , 7 , 11 , 13 , 17 , 19 2,3,5,7,11,13,17,19 2,3,5,7,11,13,17,19,就这 8 8 8个
先把本身就带平方因子的数字删掉
剩下的数,每个都可以被表示为这 8 8 8个素数乘以一个大质数的形式(也可能没有大质数)
如果用一个二进制数 s s s表示每个小素数选没选,那么每个数都可以表示成 s , t s,t s,t,其中 t t t是除掉小素数之后的数(要么是1要么是一个大素数)
那么每个数就表示成了 ( s i , t i ) (s_i,t_i) (si,