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

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(轉自網上)
 40
 41題意:給一個數N(1<=N<=2000000000);問是否存在N的倍數M,且M的各個位全部由8組成,如果存在多個取最小的 M 并輸出M由幾個8組成。
 42
 43解題思路:因為M全部由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互質,則(10^x-1)%q==0;
 50
 51根據同余定理可知,10^x ≡1(mod q)
 52
 53根據歐拉定理可知當gcd(a,b)==1時,a^φ(b)≡1(mod b);
 54
 55即可得出:當gcd(10,q)==1時    10^φ(q)≡1(mod q)   即通過枚舉φ(q)的因子(最小因子)就能得出結果
 56
 57由于N比較大,因此采用long long 型。同時做一個素數表。
 58
 59在進行冪求模運算的時候可以采用快速冪的方法。
 60
 61由于在進行快速冪求模的時候數據會超出long long 的表示范圍,因此要進行優化。
 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) 評論(0)  編輯 收藏 引用 所屬分類: ACMAlgorithmMathematics課內作業

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲国产日韩欧美| 亚洲综合精品一区二区| 国产精品久久毛片a| 噜噜噜在线观看免费视频日韩| 欧美国产1区2区| 亚洲激情影视| 好吊妞**欧美| 一区二区三区www| 久久精品人人| 亚洲电影毛片| 欧美日韩综合另类| 久久久国产一区二区| 美女福利精品视频| 亚洲美女黄色| 99pao成人国产永久免费视频| 欧美一区二区在线视频| 老司机凹凸av亚洲导航| 国产精品久久久久久久久免费樱桃 | 欧美中文日韩| 欧美激情一区| 欧美在线一级va免费观看| 亚洲国产高清aⅴ视频| 国产三区精品| 伊人成人在线| **性色生活片久久毛片| 久久精品72免费观看| 亚洲欧洲精品一区二区三区 | 久久激情婷婷| 亚洲一区二区三区四区五区黄 | 欧美激情网站在线观看| 免费在线看成人av| 乱码第一页成人| 亚洲视频免费在线观看| 中国成人在线视频| 亚洲人成网在线播放| 久久久久久久一区二区| 亚洲综合欧美| 欧美一区二区精美| 久久黄色影院| 久久精品国产第一区二区三区最新章节| 亚洲国内自拍| 亚洲精品一区二区在线观看| 亚洲精品乱码久久久久久日本蜜臀 | 亚洲欧美美女| 亚洲一区免费看| 亚洲精品美女免费| 亚洲精品国产拍免费91在线| 国产在线精品一区二区中文| 亚洲国产精品美女| 亚洲一级片在线观看| 久久久久国产精品一区二区| 亚洲国产精品嫩草影院| 亚洲精品在线观看免费| 久久精精品视频| 欧美激情1区2区| 国产精品久久福利| 亚洲人成啪啪网站| 亚洲一区二区三区精品在线| 久久激情综合| 1024亚洲| 国产农村妇女精品| 在线播放日韩| 在线一区日本视频| 免费成年人欧美视频| 欧美精品一区二区三区高清aⅴ| 欧美日韩国产首页在线观看| 久久久久久久999| 亚洲精品一二| 麻豆九一精品爱看视频在线观看免费| 国产欧美欧洲在线观看| 亚洲精品国产日韩| 久久久www成人免费无遮挡大片 | 久久久午夜电影| 日韩亚洲欧美成人一区| 久久se精品一区二区| 欧美亚一区二区| 在线中文字幕一区| 亚洲美女色禁图| 国产精品入口尤物| 夜夜嗨网站十八久久| 美女黄毛**国产精品啪啪| 欧美中文在线字幕| 国内视频一区| 美女视频网站黄色亚洲| 久久久久一区二区三区| 精品福利免费观看| 欧美成人性生活| 欧美精品一区二区三区一线天视频 | 久久精品盗摄| 一区二区三区亚洲| 亚洲欧洲日韩综合二区| 欧美日本韩国一区| 亚洲精品一区二区三区四区高清| 亚洲视频在线观看一区| 亚洲在线成人| 亚洲欧美999| 欧美精品二区| 久久激情视频| 亚洲精品国产精品国产自| 亚洲精品国产品国语在线app| 久久亚洲欧美| 亚洲性夜色噜噜噜7777| 在线亚洲免费视频| 激情国产一区| 亚洲视频精选| 亚洲韩国青草视频| 亚洲国产婷婷香蕉久久久久久99| 裸体歌舞表演一区二区| 亚洲人久久久| 欧美在线免费| 亚洲一区在线播放| 欧美福利在线观看| 亚洲欧美福利一区二区| 久久在线视频在线| 欧美一区国产一区| 欧美日韩精品一二三区| 久久色在线观看| 国产精品欧美日韩一区二区| 老司机精品视频网站| 国产伦精品一区二区三区| 亚洲国产另类 国产精品国产免费| 国产精品你懂得| 亚洲精品乱码久久久久久黑人| 国产伊人精品| 午夜亚洲伦理| 久久精品视频免费播放| 亚洲欧洲精品一区二区精品久久久 | 日韩视频精品在线| 久久精品一区二区三区不卡| 欧美尤物巨大精品爽| 国产精品视频免费在线观看| 亚洲激情网站| 亚洲精品乱码久久久久久久久| 午夜欧美不卡精品aaaaa| 久久疯狂做爰流白浆xx| 国产日韩av高清| 欧美资源在线观看| 久久综合色8888| 99视频一区二区三区| 欧美大片va欧美在线播放| 亚洲视频免费| 一区二区欧美在线观看| 久久久久欧美精品| 免费不卡在线观看av| 在线视频成人| 亚洲欧美一区二区三区在线| 亚洲欧美日韩精品综合在线观看| 最新成人av网站| 免费高清在线一区| 国产亚洲成av人在线观看导航| 亚洲视频自拍偷拍| 91久久久久久久久| 欧美高清视频www夜色资源网| 一区二区三区自拍| 久久精品亚洲精品国产欧美kt∨| 一本一本久久a久久精品牛牛影视| 久久久久久久一区| 国产亚洲视频在线| 久久精品国产99国产精品| 亚洲视频在线观看网站| 国产精品久久久久久久9999 | 日韩一级黄色大片| 亚洲第一搞黄网站| 欧美日韩精品中文字幕| 午夜精品www| 在线一区观看| 亚洲精选大片| 亚洲国产经典视频| 久久精品综合网| 在线视频精品| 揄拍成人国产精品视频| 国产亚洲欧美一区在线观看| 欧美精品日本| 美日韩在线观看| 久久免费国产| 欧美一区二区三区免费在线看| 亚洲精品久久久久久下一站 | 国产精品日韩精品欧美在线 | 久久三级福利| 久久夜色精品一区| 亚洲国产乱码最新视频| 欧美日韩在线免费视频| 欧美精品国产精品日韩精品| 小黄鸭精品aⅴ导航网站入口| 亚洲欧美日韩中文视频| 99精品欧美一区二区三区| 亚洲精品一区二区三区在线观看| 久久综合电影| 亚洲国产日韩美| 亚洲欧美日韩一区| 久久裸体视频| 欧美激情小视频| 欧美精品色一区二区三区| 欧美裸体一区二区三区| 国产精品亚洲综合色区韩国| 国产日韩在线亚洲字幕中文| 国产一区二区精品| 亚洲黄色成人久久久| 午夜视频一区二区| 亚洲国产一区二区三区在线播 |