題意:
求有多少組 ( i,j )思路使 lcm(i, j) = n and (i ≤ j).
(1 ≤ n ≤ 10^14)
假設已找到一對(a,b)的lcm=n**有a=p1^d1+p2^d2+…pm^dm
b=p1^e1+p2^e2+…pm^em
易知max(di,ei)=ci
先考慮有序數對(a,b),由唯一分解定理知,a的每乙個素因數的冪的大小都決定乙個獨一無二的數。
所以(a,b)的種數就是(di,ei)的種數,即2*(ci+1)-1(因為有序對(c1,c1)重複了一次所以-1)
所以有序對(a,b)的種數ans=(2*c1+1)(2*c2+1)(2*c3+1)…(2*cm+1)
但是要求求無序對的種數,已知(a,b)(b,a)重複,除了(n,n)只算了乙個之外,所以ans = ans/2 +1
#include
#include
#include
#include
#include
using
namespace
std;
typedef
long
long ll;
const
int n = 1e7 + 100;
ll prime[ n / 10 ];
bool vis[ n ];
int tot;
void init ()
}int main ()
if ( t > 1 )
ans *= 3;
}}
LightOJ 1116 唯一分解定理
題意 給乙個w,然後分為n m形式,n為奇數,m為偶數,問你是否有解,如果有解,輸出的答案m盡可能小。如果w是奇數肯定無解,因為偶數 奇數只能得到偶數。當w為偶數時,根據唯一分解定理,它的偶數質因子只有2,我們只要找到2的個數,然後全給m,剩下的全給n即可。include include inclu...
LightOJ 1341 唯一分解定理
思路就是把a分解質因數,對於乙個質因數a1p1,會是a的因數多 p1 1 倍 不選或者選幾個,乘法法則 對於每個因數,都會有另乙個因數與他乘在一起結果是a,所以我們求出因數的個數之後除以2即可得出組合的數量,然後對於給的範圍,0 b中每有乙個因數,組合的數量便會減一。如果我們需要對n分解質因數,只要...
LightOJ 1035(唯一分解定理)c
題解 1.首先了解一下題目的意思,給你t組測試用例,每組乙個數n,讓你把 n!寫成質數的冪相乘的形式。2.由唯一分解定理可知每個數都可以分解成若干個質數相乘,由於求 n!我們可以從2到n依次遍歷,求出每個數的分解結果。3.我們可以建立乙個陣列md來儲存對應的質數出現的次數 也就是質數的冪數 將這個陣...