日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

扩展筛选LightOj 1054 Efficient Pseudo Code

發(fā)布時間:2025/3/21 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 扩展筛选LightOj 1054 Efficient Pseudo Code 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題記:寫這篇博客要主是加深自己對擴(kuò)展篩選的認(rèn)識和總結(jié)實(shí)現(xiàn)算法時的一些驗(yàn)經(jīng)和訓(xùn)教,如果有錯誤請指出,萬分感謝。

每日一道理
俄國作家契訶夫說:“有大狗,有小狗,小狗不該因?yàn)榇蠊返拇嬖诙幕乓鈦y。所有的狗都應(yīng)該叫,就讓他各自用上帝給他的聲音。
/* * Author: johnsondu * time: 2013-4-25 * meanning: 求出約數(shù)和n ^ m的約數(shù)和,倏地模取冪,擴(kuò)展歐幾里德,素數(shù)篩選 * problem: LightOj 1054 * url: http://lightoj.com/volume_showproblem.php?problem=1054 * */#include <iostream> #include <cstdio> #include <cmath> #include <algorithm> #include <cstring> using namespace std ;#define max(x, y) (x > y ? x : y) #define min(x, y) (x < y ? x : y) #define LL long long #define M 1000005 #define N 1005 const int Mod = 1000000007LL ; bool ip[M] ; int p[M], pl ; LL n, m, pnum, ans ;struct Node {int num ;int prime ; }node[N] ;void init () {for (int i = 2; i < M; i ++)ip[i] = true ;pl = 0 ;for (int i = 2; i < M; i ++)if (ip[i]){p[pl ++] = i ;for (int j = 2 * i; j < M; j += i)ip[j] = false ;} }void divide (int t) {pnum = 0 ;for (int i = 0; i < N; i ++)node[i].num = 0 ;for (int i = 0;i < pl; i ++){if (t % p[i] == 0){node[pnum].prime = p[i] ;while (t % p[i] == 0){node[pnum].num ++ ;t /= p[i] ;}pnum ++ ;}if (p[i]*p[i] > t)break ;}if (t != 1){node[pnum].prime = t ;node[pnum].num ++ ;pnum ++ ;} }void exgcd (LL a, LL b, LL &d, LL &x, LL &y) {if (b == 0){x = 1 ;y = 0 ;d = a ;return ;}exgcd (b, a%b, d, x, y) ;LL tmp = x ;x = y ;y = tmp - a/b * y ; }LL powerMod (LL a, LL b) {LL res = 1 ;while (b){if (b & 1){res = ((res % Mod) * a) % Mod ;b -- ;continue ;}a = ((a % Mod) * a) % Mod ;b >>= 1 ;}return res ; }void solve () {ans = 1 ;for (int i = 0; i < pnum; i ++){LL u = node[i].prime, v = node[i].num * m ;ans = (ans * (powerMod (u, v+1) - 1) % Mod + Mod) % Mod ;LL x, y, d ;exgcd (u-1, Mod, d, x, y) ;ans = (ans * x % Mod + Mod) % Mod ;}printf ("%lld\n", ans) ; }int main () {//freopen ("data.txt", "r", stdin) ;init () ;int tcase, cs = 1 ;scanf ("%d", &tcase) ;while (tcase --){scanf ("%lld%lld", &n, &m) ;printf ("Case %d: ", cs ++) ;divide (n) ;solve () ;}return 0 ; }

文章結(jié)束給大家分享下程序員的一些笑話語錄: 打賭
飛機(jī)上,一位工程師和一位程序員坐在一起。程序員問工程師是否樂意和他一起玩一種有趣的游戲。工程師想睡覺,于是他很有禮貌地拒絕了,轉(zhuǎn)身要睡覺。程序員堅持要玩并解釋說這是一個非常有趣的游戲:"我問你一個問題,如果你不知道答案,我付你5美元。然后你問我一個問題,如果我答不上來,我付你5美元。"然而,工程師又很有禮貌地拒絕了,又要去睡覺。  程序員這時有些著急了,他說:"好吧,如果你不知道答案,你付5美元;如果我不知道答案,我付50美元。"果然,這的確起了作用,工程師答應(yīng)了。程序員就問:"從地球到月球有多遠(yuǎn)?"工程師一句話也沒有說,給了程序員5美元。  現(xiàn)在輪到工程師了,他問程序員:"什么上山時有三條腿,下山卻有四條腿?"程序員很吃驚地看著工程師,拿出他的便攜式電腦,查找里面的資料,過了半個小時,他叫醒工程師并給了工程師50美元。工程師很禮貌地接過錢又要去睡覺。程序員有些惱怒,問:"那么答案是什么呢?"工程師什么也沒有說,掏出錢包,拿出5美元給程序員,轉(zhuǎn)身就去睡覺了。

總結(jié)

以上是生活随笔為你收集整理的扩展筛选LightOj 1054 Efficient Pseudo Code的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。