D Power Products 質因數分解

2021-10-02 16:40:27 字數 1911 閱讀 8594

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 但是當處理的資料比較多,而且範圍也比較大的時候顯然這種方式就不再那麼適合了。既然我們是分解質因子,那麼我們就可以先預處...