B 最小的指數

2022-06-02 03:30:21 字數 865 閱讀 9934

題意:給出乙個1e18範圍內的數,讓我們對其盡心質因數分解;

求出質因數的最小指數,如18分解後為2*3*3,那麼有指數1(2的1次方),指數2(3的2次方)

思路:因為給出的數的範圍有點大,所以想要直接進行暴力是不可能的;

但是可以發現,當質數較大的時候,指數是很小的,如當某個數為1e4的時候,想要變成1e16也就需要4次方而已;  

所以我們可以將質數較大的情況直接計算,當質數較小的時候,暴力列舉

對於大的情況,從1e3開始的數,頂多指數最大就到5,所以我們可以列舉指數分別為1,2,3,4,5的情況(**中只有到4)

1 #include 2 #include 3 #include 4 #include 5 #include 6

using

namespace

std;

7 typedef long

long

ll;8

const

int maxn=1e3+10;9

ll prime[maxn],len;

10bool

is_prime[maxn];

11void

init()

1223}24

}25intmain()

2637

int i,j,k,ans=1e9+7;38

for(i=1;i<=len;i++)

45if(cnt) ans=min(ans,cnt);46}

47if(n>=maxn)

56 printf("

%d\n

",ans);57}

58return0;

59 }

view code

牛客挑戰賽46 B最小的指數

傳送門題意 1e6次詢問,每次給你乙個1e18的數問你質因數分解後的所有質因數中的指數冪中最小的是多少。題解 將4000以下的素數預處理,然後分解n,若剩餘值等於1說明已完全分解,若大於1,也易知其剩餘最小質因數指數冪不超過4,便如下分類討論。1.若為4,則必為x 4 n 2.若為3,則必為x 3 ...

牛客挑戰賽46 B 最小的指數

給出乙個數 x 將它分解質因數成 prod p i a i 0 求 min a i t le 10 5 x le 10 pollard rho顯然過不去。先將 4000 以內的質數都暴力做一遍,如果遇到了 x 的因數計算一下。對於剩餘的質數,ans 不會大於等於 5 因為 4000 5 10 那麼 ...

2019HDU多校 6223 (最小質因子指數冪)

傳送門 題解 考慮先篩出1e4 1e41e 4以內的素數,對於每個輸入的 n nn 先除掉 1e4 1e41e 4 以內的素因子 如果存在的話 並且更新答案。如果除完後n nn 還大於1,說明存在大於1e4 1e41e 4的素因子,而且這些素因子的最多隻會有4 44次方,因為更大的話就會超過 1 e...