青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

coreBugZJ

此 blog 已棄。

POJ 3696 The Luckiest number

  1/*
  2POJ 3696 The Luckiest number
  3
  4
  5----問題描述:
  6
  7Chinese people think of '8' as the lucky digit. Bob also likes digit '8'. Moreover, Bob has his own lucky number L. Now he wants to construct his luckiest number which is the minimum among all positive integers that are a multiple of L and consist of only digit '8'.
  8
  9
 10----輸入:
 11
 12The input consists of multiple test cases. Each test case contains exactly one line containing L(1 ≤ L ≤ 2,000,000,000).
 13
 14The last test case is followed by a line containing a zero.
 15
 16
 17----輸出:
 18
 19For each test case, print a line containing the test case number( beginning with 1) followed by a integer which is the length of Bob's luckiest number. If Bob can't construct his luckiest number, print a zero.
 20
 21
 22----樣例輸入:
 23
 248
 2511
 2616
 270
 28
 29
 30----樣例輸出:
 31
 32Case 1: 1
 33Case 2: 2
 34Case 3: 0
 35
 36
 37----分析:
 38
 39(轉(zhuǎn)自網(wǎng)上)
 40
 41題意:給一個(gè)數(shù)N(1<=N<=2000000000);問是否存在N的倍數(shù)M,且M的各個(gè)位全部由8組成,如果存在多個(gè)取最小的 M 并輸出M由幾個(gè)8組成。
 42
 43解題思路:因?yàn)镸全部由8組成,即M=(10^x -1)*8/9=k*N;
 44
 45則    (10^x-1)*8/gcd(8,N)=9*k*N/gcd(8,N);
 46
 47令p=8/gcd(8,N);        q=9*N/gcd(8,N);    即    (10^x-1)*p=k*q;
 48
 49由于p和q互質(zhì),則(10^x-1)%q==0;
 50
 51根據(jù)同余定理可知,10^x ≡1(mod q)
 52
 53根據(jù)歐拉定理可知當(dāng)gcd(a,b)==1時(shí),a^φ(b)≡1(mod b);
 54
 55即可得出:當(dāng)gcd(10,q)==1時(shí)    10^φ(q)≡1(mod q)   即通過枚舉φ(q)的因子(最小因子)就能得出結(jié)果
 56
 57由于N比較大,因此采用long long 型。同時(shí)做一個(gè)素?cái)?shù)表。
 58
 59在進(jìn)行冪求模運(yùn)算的時(shí)候可以采用快速冪的方法。
 60
 61由于在進(jìn)行快速冪求模的時(shí)候數(shù)據(jù)會(huì)超出long long 的表示范圍,因此要進(jìn)行優(yōu)化。
 62
 63
 64*/

 65
 66
 67/**********************************************
 68版本一:
 69*/

 70
 71#include <iostream>
 72#include <cstdio>
 73#include <cstring>
 74
 75using namespace std;
 76
 77typedef  __int64  Lint;
 78
 79#define  LP  45000
 80int  nprime;
 81Lint prime[ LP ];
 82
 83#define  LF  128
 84int  nf;
 85Lint f[ LF ];
 86
 87void init_prime() {
 88        int i, j;
 89        nprime = 0;
 90        memset( prime, 0sizeof(prime) );
 91        for ( i = 2; i < LP; ++i ) {
 92                if ( 0 == prime[ i ] ) {
 93                        prime[ nprime++ ] = i;
 94                        for ( j = i+i; j < LP; j += i ) {
 95                                prime[ j ] = 1;
 96                        }

 97                }

 98        }

 99}

100
101void calc_f( Lint n ) {
102        int i;
103        nf = 0;
104        for ( i = 0; (i < nprime)&&(prime[i]*prime[i] <= n); ++i ) {
105                while ( n % prime[ i ] == 0 ) {
106                        f[ nf++ ] = prime[ i ];
107                        n /= prime[ i ];
108                }

109        }

110        if ( 1 < n ) {
111                f[ nf++ ] = n;
112        }

113}

114
115Lint gcd( Lint a, Lint b ) {
116        Lint t;
117        while ( 0 != b ) {
118                t = a;
119                a = b;
120                b = t % b;
121        }

122        return a;
123}

124        // a * b % m
125Lint mul_mod( Lint a, Lint b, Lint m ) {
126        Lint s = 0;
127        a %= m;
128        while ( 0 != b ) {
129                if ( 0 != (1 & b) ) {
130                        s += a;
131                        if ( s >= m ) {
132                                s -= m;
133                        }

134                }

135                a <<= 1;
136                if ( a >= m ) {
137                        a -= m;
138                }

139                b >>= 1;
140        }

141        return s;
142}

143        // a ^ b % m
144Lint pow_mod( Lint a, Lint b, Lint m ) {
145        Lint s = 1;
146        a %= m;
147        while ( 0 != b ) {
148                if ( 0 != (1 & b) ) {
149                        s = mul_mod( s, a, m );
150                }

151                a = mul_mod( a, a, m );
152                b >>= 1;
153        }

154        return s;
155}

156        // 歐拉
157Lint phi( Lint n ) {
158        Lint s = n;
159        int i;
160        for ( i = 0; (i < nprime)&&(prime[i]*prime[i] <= n); ++i ) {
161                if ( n % prime[ i ] == 0 ) {
162                        s = s / prime[ i ] * (prime[ i ] - 1);
163                        do {
164                                n /= prime[ i ];
165                        }
 while ( n % prime[ i ] == 0 );
166                }

167        }

168        if ( 1 < n ) {
169                s = s / n * (n - 1);
170        }

171        return s;
172}

173
174Lint solve( Lint n ) {
175        Lint m = 9 * n / gcd(8, n);
176        if ( 1 != gcd(10, m) ) {
177                return 0;
178        }

179
180        Lint ph = phi(m);
181        Lint s  = ph;
182        int  i;
183        bool down = true;
184        while ( down ) {
185                down = false;
186                calc_f(ph);
187                for ( i = 0; i < nf; ++i ) {
188                        if ( (pow_mod(10, ph/f[i], m) == 1&& (ph/f[i] < s) ) {
189                                s = ph / f[ i ];
190                                down = true;
191                        }

192                }

193                ph = s;
194        }

195        return s;
196}

197
198int main() {
199        int td = 0, n;
200        init_prime();
201        while ( (1 == scanf("%d"&n)) && (0 < n) ) {
202                printf( "Case %d: %I64d\n"++td, solve(n) );
203        }

204        return 0;
205}

206

posted on 2012-06-01 21:32 coreBugZJ 閱讀(742) 評(píng)論(0)  編輯 收藏 引用 所屬分類: ACMAlgorithmMathematics課內(nèi)作業(yè)

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲韩国日本中文字幕| 欧美色道久久88综合亚洲精品| 一区二区在线观看av| 这里只有精品电影| 亚洲少妇在线| 欧美日韩激情小视频| 亚洲激情影视| 在线免费不卡视频| 久久免费视频这里只有精品| 久久精品国产一区二区三| 国产乱码精品一区二区三区不卡| 亚洲夜晚福利在线观看| 午夜精品免费| 国产欧美日韩另类视频免费观看| 亚洲欧美日韩爽爽影院| 久久精品国产精品| 黄色小说综合网站| 久久综合色婷婷| 亚洲福利小视频| 一区二区三区回区在观看免费视频 | 国产有码在线一区二区视频| 亚洲欧美日韩一区二区| 久久精品青青大伊人av| 伊人久久大香线| 欧美二区不卡| 一区二区三区视频在线| 久久精品首页| 亚洲福利小视频| 欧美日韩亚洲天堂| 欧美一区二区三区日韩| 国产日韩精品一区观看| 久久精品30| 亚洲黄色免费网站| 亚洲一区二区影院| 国产在线精品自拍| 免费成人在线视频网站| 日韩一二三在线视频播| 欧美中文字幕| 亚洲日本黄色| 国产精品久久一区主播| 久久久久久综合| 日韩午夜电影| 久久色在线播放| 一区二区欧美日韩| 国产一区91精品张津瑜| 欧美成人免费视频| 亚洲一区综合| 亚洲福利视频网| 校园春色综合网| 亚洲乱亚洲高清| 国产亚洲精品美女| 欧美精品色综合| 久久电影一区| 99精品国产热久久91蜜凸| 久久婷婷综合激情| 亚洲专区国产精品| 亚洲国产视频一区| 国产日韩欧美在线观看| 欧美激情一区二区三区高清视频 | 亚洲一区二区三区高清 | 老司机精品视频网站| 一区二区三区蜜桃网| 国产在线观看91精品一区| 久久伊人免费视频| 国产精品久久久久久久久| 久久伊人精品天天| 亚洲欧美日韩在线| 亚洲毛片视频| 这里只有精品视频在线| 一区视频在线看| 国产精品视频yy9299一区| 欧美激情 亚洲a∨综合| 久久精品一区二区三区中文字幕 | 欧美一级淫片aaaaaaa视频| 亚洲美女啪啪| 亚洲国产一区二区精品专区| 国产欧美一级| 国产精品三区www17con| 欧美日本国产精品| 免费国产自线拍一欧美视频| 久久国产日韩欧美| 亚洲欧美中文另类| 亚洲一区二区视频在线观看| 性伦欧美刺激片在线观看| 一区二区三区 在线观看视| 亚洲人线精品午夜| 亚洲激情专区| 91久久精品久久国产性色也91| 激情91久久| 精品电影在线观看| 激情综合亚洲| 极品少妇一区二区| 一区二区视频免费在线观看| 国产热re99久久6国产精品| 国产精品欧美日韩| 国产精品日韩欧美大师| 国产精品亚洲аv天堂网 | 久久久99免费视频| 欧美一区二区精品| 欧美一区二区三区在线观看| 欧美在线免费一级片| 欧美在线观看天堂一区二区三区| 亚洲婷婷国产精品电影人久久| 一区二区欧美在线| 亚洲性视频网址| 午夜精品999| 久久精品国产一区二区三区| 久久精品国产欧美亚洲人人爽| 久久久av水蜜桃| 免费一级欧美片在线观看| 欧美高清你懂得| 亚洲欧美国产制服动漫| 亚洲伊人一本大道中文字幕| 亚洲午夜av在线| 欧美一区二区三区四区高清 | 欧美aaa级| 欧美韩日一区二区三区| 亚洲国产日韩精品| av成人国产| 亚洲欧美日产图| 久久狠狠婷婷| 欧美大片在线观看| 国产精品久久久久999| 国产乱人伦精品一区二区| 一区二区在线看| 日韩午夜av电影| 亚洲一区不卡| 久久久久久有精品国产| 亚洲电影中文字幕| 一区二区av| 一区二区三区四区五区在线| 亚洲尤物视频网| 欧美怡红院视频| 欧美gay视频| 国产精品捆绑调教| 在线观看一区二区视频| 亚洲一区二区三区国产| 狂野欧美激情性xxxx| 亚洲七七久久综合桃花剧情介绍| 欧美69wwwcom| 亚洲一区二区网站| 亚洲欧美日韩一区在线| 久久久高清一区二区三区| 亚洲国产成人高清精品| 亚洲午夜激情免费视频| 久久精品一区二区三区中文字幕| 欧美激情亚洲自拍| 国产午夜精品全部视频播放 | 欧美日韩美女一区二区| 国产一区二区日韩精品| 999在线观看精品免费不卡网站| 欧美在线观看一二区| 亚洲国产精品成人久久综合一区| 亚洲综合首页| 欧美激情一区二区三区成人| 国产亚洲精品aa| 亚洲网址在线| 欧美顶级大胆免费视频| 亚洲在线一区二区| 欧美激情国产日韩| 极品尤物av久久免费看| 亚洲欧美国产va在线影院| 免费在线亚洲| 欧美影院成年免费版| 欧美三级视频| 亚洲日本成人| 老司机午夜精品视频| 亚洲一区二区三区免费在线观看 | 欧美中文在线观看国产| 欧美视频中文一区二区三区在线观看 | 久久国内精品视频| 国产精品第2页| 99视频精品全部免费在线| 欧美va亚洲va香蕉在线| 欧美一区二区大片| 国产麻豆91精品| 亚洲欧美另类国产| 一区二区免费在线播放| 欧美日韩大片| 99精品欧美一区| 欧美激情1区2区| 蜜月aⅴ免费一区二区三区| 在线成人激情视频| 麻豆成人精品| 久久精品国产精品亚洲精品| 国产精品一区一区| 亚洲欧美文学| 亚洲深爱激情| 国产精品成人一区二区网站软件 | 一区二区激情小说| 91久久在线观看| 欧美韩日一区| 99精品国产福利在线观看免费| 欧美成人免费在线| 久久综合久久综合久久综合| 伊人久久男人天堂| 免费在线观看精品| 麻豆精品在线视频| 日韩视频永久免费观看| 最新成人av网站|