階乘的整數分解 fzu1753

2021-07-03 21:08:56 字數 2062 閱讀 3077

題意:給t個組合數的最大公約數。

將每個組合數的素數分解式求出來,把每個素數的最小次數乘起來就是最大公約數。組合數可以寫成階乘的形式,然後利用階乘的整數分解就可以得到組合數的整數分解。

**:#include #include #include #include #include #include#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;

#define pb push_back

#define mp make_pair

#define rep(i,x,n) for(int i=x;i<(n);++i)

#define for(i,l,h) for(int i=(l);i<=(h);++i)

#define ford(i,h,l) for(int i=(h);i>=(l);--i)

#define sz(x) ((int)(x).size())

#define all(x) (x).begin(), (x).end()

#define ri(x) scanf("%d", &(x))

#define rii(x, y) scanf("%d%d", &(x), &(y))

#define riii(x, y, z) scanf("%d%d%d", &(x), &(y), &(z))

#define dri(x) int (x); scanf("%d", &x)

#define drii(x, y) int x, y; scanf("%d%d", &x, &y)

#define driii(x, y, z) int x, y, z; scanf("%d%d%d", &x, &y, &z)

#define oi(x) printf("%d",x);

#define rs(x) scanf("%s", (x))

#define ms0(x) memset((x), 0, sizeof((x)))

#define ms1(x) memset((x), -1, sizeof((x)))

#define len(x) strlen(x)

#define f first

#define s second

#define swap(a, b) (a ^= b, b ^= a, a ^= b)

#define dpoint strcut node

#define cmpd int cmp(const int &a,const int &b)

/*#ifdef home

freopen("in.txt","r",stdin);

#endif*/

const int mod = 1e9+7;

typedef vectorvi;

typedef vectorvs;

typedef vectorvd;

typedef long long ll;

typedef pairpii;

//#define home

int scan()

/*----------------please-----do-----not-----hack-----me--------------------*/

long long int prime[100000+5];

int vis[100000+5];

int cnt;

void getprime()

return res;

}long long int mypow(long long int a,long long int b)

return res;

}int res[101000];

int main()

long long int ans=1;

for(int j=0;prime[j]<=bound;j++)

{for(int i=0;i

整數分解為2的冪 數學

任何正整數都能分解成2的冪,給定整數n,求n的此類劃分方法的數量!由於方案數量較大,輸出mod 1000000007的結果。比如n 7時,共有6種劃分方法。7 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 2 1 2 2 2 1 1 1 4 1 2 4 input輸入乙個數n ...

1383 整數分解為2的冪

1383 整數分解為2的冪 基準時間限制 1 秒 空間限制 131072 kb 任何正整數都能分解成2的冪,給定整數n,求n的此類劃分方法的數量!由於方案數量較大,輸出mod 1000000007的結果。比如n 7時,共有6種劃分方法。7 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 ...

python實現整數分解為質數的演算法

之前面試碰到過一道題,要求將整數分解為質數,用c實現看上去較為繁瑣,最近學習python,拿這道題練練手,相對於c而言,非常簡潔。廢話不多說,先上原始碼。import time def isnotin meta list for ec in list if meta ec return false ...