題目1104 整除問題

2021-07-11 17:20:34 字數 709 閱讀 6051

對n!以及a進行分解質因素,如果a的質因素的冪小於等於n!的質因素的冪,則可以整除。求符合要求裡最大的。

1.求1-1000之間的素數

素數篩法,獲得乙個素數時,將它的所有倍數標記為非素數。

當遍歷到乙個數時,沒有被任何小於它的素數標記為非素數,則確定其為素數。

void ini1104()

}

2.對於階乘!n的處理

1到n中素數p的倍數至少有n/p個,這n/p個數每個數取餘p都為0,每個數可以向n!貢獻乙個p,共n/p;

如果n/(p*p)不為0,則有n/(p*p)個整數可以向n!貢獻兩個p,(在上一步中已經貢獻了1個,這一步呀只能貢獻1個),共n/(p*p);

如果n/(p*p)不為0。。。

for (int i = 0; i < c1104; i++)

}

3.對a進行分解質因素,並求出最大的k(數的範圍不大,不需要開根號之後再進行分解)

int ans = 12341234;

for (int i = 0; i < c1104; i++)

if (bp[i] == 0) continue;

if (ap[i] / bp[i] < ans)

ans = ap[i] / bp[i];

}

九度題目1104整除問題

先篩選出1000以內的所有素數 計算出a各個素數因子的冪數 計算出n 的各個素數因子的冪數 用n分別除以各素數因子的1次冪 2次冪 累加在一起 用n 的因子指數分別除以a的因子指數,取其中的最小值即為k include int prime 1001 bool mark 1001 int primes...

九度 oj 題目1104 整除問題

1.2.有兩種做法 第一種做法,把n!做素數分解,用cnt1 i 代表n!中含有的primes i 的因子個數 如果n primes i x,那麼在n!中就有x個數含有primes i 為它的因子,但是這x個數中有的數含有多個primes i 為它的因子,所以還需要不斷的做 cnt1 i x pri...

九度OJ 1104 整除問題

我的思路就是分別將n,a進行分解質因數並把冪次儲存在兩個power陣列裡,然後按照a的質因數去遍歷,計算每個質因數p的 在n中冪次 在a中冪次 的比值,比值中最小的即為k。機試指南上提供了另一種高效得多的演算法,真是相形見絀啊 皿 題目描述 給定n,a求最大的k,使n!可以被a k整除但不能被a k...