HDU 4497(质数分解和计数)
来源:互联网 发布:复杂sql语句优化 编辑:程序博客网 时间:2024/05/16 18:00
如果G%L != 0,说明一定无解。
把K = G / L质数分解,G / L = p1^t1 * p2^t2 * p3^t3 * ……;同时 x/= L, y/= L, z/=L,不影响结果。
假设三个数字的质数分解是:
x = p1^i1 * p2^i2 * p3^i3 * ……
y = p1^j1 * p2^j2 * p3^j3 * ……
z = p1^k1 * p2^k2 * p3^k3 * ……
要保证x, y, z互质,并且lcm(x, y, z) = K, 那么对于p1来说,i1, j1, k1里面一定有一个是0,并且一定有一个是t1,一定有一个小于等于t1, 所以有3种情况:
0 0 t1 有3种
t1 t1 0 有3种
t1 0 1~t1-1 有(t1-1)*6种
一共是6*t1种。
同理对于p1、p2、p3.............
根据乘法原理,总的种数是:6*t1 + 6*t2 + ……
不用打质数表,直接从2开始枚举就行。
#include<cstdio>typedef long long ll;int main(){ int T; scanf("%d", &T); while(T--){ ll g, l; scanf("%I64d%I64d", &g, &l); if(l % g != 0){printf("0\n"); continue;} ll k = l / g; ll ans = 1, cnt; ll p1 = 2; while(1){ cnt = 0; if(k == 1) break; if(k % p1) {p1++; continue;} while(k % p1 == 0){ k /= p1; cnt++; } ans *= 6 * cnt; p1++; } printf("%lld\n", ans); }}
1 0
- HDU 4497(质数分解和计数)
- hdu 4497 GCD and LCM (唯一分解定理 + 计数)
- 质数和分解(动态规划)
- 质数和分解(动态规划)
- 质数和分解问题
- 质数和分解问题
- 质数和分解
- 【9911】质数和分解
- 质数和分解
- 质数和分解(prime)
- SSL_1197 质数和分解
- 【Ahoi2001 Problem2】质数和分解
- (ssl1197)P2563 质数和分解
- (ssl 1197)质数和分解
- 质数分解
- 质数分解
- 质数分解
- 质因数分解和N以内的质数
- POJ-----1383树的直径变形
- 125.You want to check the details of few errors that users have reported. You search for the alert l
- JVM---第二篇垃圾收集
- python @ 用法
- 医与药(二)
- HDU 4497(质数分解和计数)
- 文章标题
- Zepto清单
- IP数据报及其路由表
- 数学(扩展欧几里得算法)经典模板
- 00 为什么会有对象?为什么会有类?面向过程与面向对象的区别?
- CCS5.4+Proteus8的F28027实践课六、实验板焊接调试(12864部分)
- unity 一个拼图demo(七巧板)和一个切割demo
- 【多线程】初探多线程