1≤j
nai×
aj=x
k1\leq j < i \leq n\\ a_i\times a_j = x^k
1≤jnai
×aj
=xkface
所以我們首先對每乙個 ai 進行質因子分解,用乙個數將ai的質因子冪次%m後再乘起來。用map存一下。
在對現在的數進行質因子分解,求出他需要的數。
#include
#include
using
namespace std;
#define _rep(n, a, b) for (ll n = (a); n <= (b); ++n)
#define _rev(n, a, b) for (ll n = (a); n >= (b); --n)
#define _for(n, a, b) for (ll n = (a); n < (b); ++n)
#define _rof(n, a, b) for (ll n = (a); n > (b); --n)
#define oo 0x3f3f3f3f3f3f
#define ll long long
#define db double
#define eps 1e-8
#define bin(x) cout << bitset<10>(x) << endl;
#define what_is(x) cerr << #x << " is " << x << endl
#define met(a, b) memset(a, b, sizeof(a))
#define all(x) x.begin(), x.end()
#define pii pair
#define pdd pair
const ll mod =
1e9+7;
const ll maxn =
1e5+10;
#define lowbit(x) x &(-x)
vector a;
int v[maxn]
, prime[maxn]
;int m =0;
void
sieve
(int n)
_rep
(j,1
, m)}}
map mp;
ll qpow
(ll a, ll b)
}return ret;
}ll c[maxn]
, b[maxn]
;signed
main()
cot %
= k;
if(cot)
cur = cur *
qpow
(prime[j]
, cot);}
if(tmp >1)
cur *
= tmp;
c[i]
= cur;
mp[c[i]]++
; b[i]=1
;_rep
(j,1
, m)
cot %
= k;
if(cot)
b[i]
= b[i]
*qpow
(prime[j]
, k - cot);}
if(cur >1)
b[i]*=
qpow
(cur, k -1)
;if(b[i]
== c[i]
) res +
= mp[c[i]]-
1;else
res +
= mp[b[i]];
} cout << res << endl;
}
質分解因數 質因子分解
3 參考 分解因數 時間限制 1000 ms 記憶體限制 32768 kb 長度限制 100 kb 判斷程式 standard 來自 小小 題目描述 所謂因子分解,就是把給定的正整數a,分解成若干個素數的乘積,即 a a1 a2 a3 an,並且 1 a1 a2 a3 an。其中a1 a2 an均為...
質性研究工具 質性研究 001
袁長蓉 復旦大學 博士研究生導師課程 人類是追求意義的物種,會不斷地從生活細節當中不斷的歸納提煉,形成精神。形成理論抽象的概念,然後再利用這些概念,這些理論反過來,解釋生活。質性研究是由地到天的研究。質性研究很重要的方法是看著別人的眼睛,面對面的交流。通過雲端完成交流沒有問題,但是情感的交流和架構還...
質因子分解
今天沒事做,我們來寫個部落格,混混等級!我們以求數的質因子的個數為例來講解。對於質因子分解最簡單最純粹的暴力我相信大家都會的。int getnum int x return ans 但是當處理的資料比較多,而且範圍也比較大的時候顯然這種方式就不再那麼適合了。既然我們是分解質因子,那麼我們就可以先預處...