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

coreBugZJ

此 blog 已棄。

SPOJ 2,Prime Generator

SPOJ Problem Set (classical)

2. Prime Generator

Problem code: PRIME1

Peter wants to generate some prime numbers for his cryptosystem. Help him! Your task is to generate all prime numbers between two given numbers!

Input

The input begins with the number t of test cases in a single line (t<=10). In each of the next t lines there are two numbers m and n (1 <= m <= n <= 1000000000, n-m<=100000) separated by a space.

Output

For every test case print all prime numbers p such that m <= p <= n, one number per line, test cases separated by an empty line.

Example

Input:
2
1 10
3 5
Output:
2
3
5
7
3
5
Warning: large Input/Output data, be careful with certain languages (though most should be OK if the algorithm is well designed)
Added by: Adam Dzedzej
Date: 2004-05-01
Time limit: 6s
Source limit: 50000B
Languages: All except: PERL 6







分析:就是判斷質數,預先開一個 35000 (其平方大于 n 的最大值)內的質數表。。。


C語言源程序:

 1#include <stdio.h>
 2#include <string.h>
 3
 4#define  L  35000
 5int prime[ L ], nprime;
 6
 7void initPrime() {
 8        int i, j;
 9        memset( prime, 0sizeof(prime) );
10        nprime = 0;
11        for ( i = 2; i < L; ++i ) {
12                if ( prime[ i ] == 0 ) {
13                        prime[ nprime++ ] = i;
14                        for ( j = i + i; j < L; j += i ) {
15                                prime[ j ] = 1;
16                        }

17                }

18        }

19        prime[ nprime++ ] = L;
20}

21
22int isPrime( int n ) {
23        int i = 0;
24        if ( n == 2 ) {
25                return 1;
26        }

27        while ( (prime[i]*prime[i]<=n) && (n%prime[i]!=0) ) {
28                ++i;
29        }

30        return n % prime[ i ] != 0;
31}

32
33int main() {
34        int td, a, b;
35        initPrime();
36        scanf( "%d"&td );
37        while ( td-- > 0 ) {
38                scanf( "%d%d"&a, &b );
39                if ( a < 2 ) {
40                        a = 2;
41                }

42                while ( a <= b ) {
43                        if ( isPrime( a ) ) {
44                                printf( "%d\n", a );
45                        }

46                        ++a;
47                }

48                if ( td > 0 ) {
49                        printf( "\n" );
50                }

51        }

52        return 0;
53}

54



匯編源程序:

  1; SPOJ 2
  2
  3section  .bss
  4        prime : resd 35000
  5        nPrime : resd 1
  6        outBuf : resb 20000000
  7        nOutBuf : resd 1
  8
  9section .text
 10        global _start
 11
 12_start : 
 13        mov eax, outBuf
 14        mov [nOutBuf], eax
 15        call initPrime
 16        call inInt
 17        push eax
 18CASE : 
 19        call inInt
 20        dec eax
 21        push eax
 22        call inInt
 23        mov ebx, eax
 24        pop eax
 25        push ebx
 26        push eax
 27LOOP : 
 28        mov eax, [esp]
 29        inc eax
 30        mov [esp], eax
 31        call isPrime
 32        test ecx, ecx
 33        jz SKIP
 34        mov eax, [esp]
 35        call outInt
 36        call outLn
 37SKIP : 
 38        mov eax, [esp]
 39        mov ebx, [esp+4]
 40        cmp eax, ebx
 41        jne LOOP
 42        pop eax
 43        pop ebx
 44        pop eax
 45        dec eax
 46        test eax, eax
 47        jz EXIT
 48        push eax
 49        call outLn
 50        jmp CASE
 51EXIT : 
 52        call flushOutBuf
 53        mov eax, 1
 54        mov ebx, 0
 55        int 0x80
 56
 57; eax = inInt
 58inInt : 
 59        sub esp, 8
 60        xor eax, eax
 61        mov [esp], eax
 62    L1 : 
 63        mov eax, 3
 64        mov ebx, 0
 65        mov ecx, esp
 66        add ecx, 4
 67        mov edx, 1
 68        int 0x80
 69        xor eax, eax
 70        mov al, byte [ecx]
 71        cmp al, '0'
 72        jb  L2
 73        cmp al, '9'
 74        ja L2
 75        mov ebx, eax
 76        sub ebx, '0'
 77        mov ecx, 10
 78        mov eax, [esp]
 79        xor edx, edx
 80        mul ecx
 81        add eax, ebx
 82        mov [esp], eax
 83        jmp L1
 84    L2 : 
 85        mov eax, [esp]
 86        test eax, eax
 87        jz L1
 88        add esp, 8
 89        ret
 90
 91out eax
 92outInt : 
 93        mov ecx, esp
 94        mov ebx, esp
 95        sub esp, 64
 96        push ecx
 97        mov ecx, 10
 98    L3 : 
 99        test eax, eax
100        jz L4
101        xor edx, edx
102        div ecx
103        add edx, '0'
104        dec ebx
105        mov byte[ebx], dl
106        jmp L3
107    L4 : 
108        mov eax, [nOutBuf]
109        pop edx
110    OIB : 
111        cmp ebx, edx
112        jnb OIE
113        cmp eax, nOutBuf
114        jb OISF
115        mov [nOutBuf], eax
116        push ebx
117        push edx
118        call flushOutBuf
119        pop edx
120        pop ebx
121        mov eax, [nOutBuf]
122    OISF : 
123        mov cl, byte[ebx]
124        mov byte[eax], cl
125        inc eax
126        inc ebx
127        jmp OIB
128    OIE : 
129        mov [nOutBuf], eax
130        add esp, 64
131        ret
132
133outLn : 
134        mov eax, [nOutBuf]
135        cmp eax, nOutBuf
136        jb OLE
137        call flushOutBuf
138    OLE :
139        mov eax, [nOutBuf]
140        mov byte [eax], 0xA
141        inc eax
142        mov [nOutBuf], eax
143        ret
144
145initPrime :
146        mov eax, prime
147    IB : 
148        cmp eax, nPrime
149        jnb IE
150        mov dword[eax], 0
151        add eax, 4
152        jmp IB
153    IE : 
154        mov eax, prime
155        mov ebx, eax
156        add eax, 8
157    SB : 
158        cmp eax, nPrime
159        jnb SE
160        mov ecx, [eax]
161        add eax, 4
162        test ecx, ecx
163        jnz SB
164        mov ecx, eax
165        sub ecx, 4
166        sub ecx, prime
167        shr ecx, 2
168        mov [ebx], ecx
169        add ebx, 4
170        mov edx, eax
171        sub edx, 4
172        mov ecx, edx
173        sub edx, prime
174        add ecx, edx
175    SM : 
176        cmp ecx, nPrime
177        jnb SB
178        mov dword [ecx], 1
179        add ecx, edx
180        jmp SM
181    SE : 
182        mov [nPrime], ebx
183        ret
184
185; ecx = isPrime( eax )
186isPrime :
187        push eax
188        cmp eax, 2
189        jb IPN
190        mov ebx, prime
191    IPB : 
192        cmp ebx, [nPrime]
193        jnb IPI
194        mov eax, [ebx]
195        mov ecx, eax
196        xor edx, edx
197        mul ecx
198        mov edx, [esp]
199        cmp eax, edx
200        ja IPI
201        mov eax, edx
202        add ebx, 4
203        xor edx, edx
204        div ecx
205        test edx, edx
206        jnz IPB
207    IPN : 
208        xor ecx, ecx
209        jmp IPE
210    IPI :
211        mov ecx, 1
212    IPE : 
213        pop eax
214        ret
215
216; flush out buffer
217flushOutBuf :
218        mov eax, outBuf
219        mov ebx, [nOutBuf]
220        cmp eax, ebx
221        jnb FOBE
222        mov eax, 4
223        mov ebx, 1
224        mov ecx, outBuf
225        mov edx, [nOutBuf]
226        sub edx, outBuf
227        int 0x80
228        mov eax, outBuf
229        mov [nOutBuf], eax
230    FOBE : 
231        ret
232
233

posted on 2011-04-01 18:45 coreBugZJ 閱讀(1702) 評論(3)  編輯 收藏 引用 所屬分類: Assemble

Feedback

# re: SPOJ 2,Prime Generator 2011-04-01 20:01 ktprime

計算區間太小不能顯示篩法的威力
我的程序計算長度為10^9也不到一秒
segment cache size = 62 k : 1929600
thread 1 is finished
PI(1000000000) = 50847534, time use 267.13 ms

[command or number] : e12 e9
segment cache size = 511 k : 15724800
init SegOffset time use 2 ms, cache size = 511 k
PI[1000000000000, 1001000000000] = 36190991, time use 849.76 ms

[command or number] : e16 e9
init SegOffset time use 167 ms, cache size = 511 k
PI[10000000000000000, 10000001000000000] = 27153205, time use 2544.52 ms
  回復  更多評論   

# re: SPOJ 2,Prime Generator 2011-04-04 08:34 coreBugZJ

@ktprime
表示仰慕!這個題目數據規模小,就簡單化處理了  回復  更多評論   


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲男人的天堂在线| 欧美国产免费| 亚洲国产成人精品视频| 先锋影音网一区二区| 亚洲综合电影| 欧美有码视频| 欧美国产免费| 亚洲激情二区| 国产自产高清不卡| 在线免费一区三区| 亚洲欧洲一区二区在线观看| 一本久久综合亚洲鲁鲁五月天| 亚洲网站视频福利| 久久久久久精| 亚洲日本理论电影| 亚洲一区二区动漫| 欧美日韩免费观看一区二区三区 | 亚洲一区中文| 欧美一级欧美一级在线播放| 久久久欧美一区二区| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美日韩日本国产亚洲在线| 国产精品久久久一区麻豆最新章节 | 欧美成人四级电影| 国产精品v欧美精品v日韩| 夜夜爽夜夜爽精品视频| 正在播放日韩| 噜噜噜在线观看免费视频日韩| 欧美色另类天堂2015| 一区二区在线观看视频| 亚洲午夜精品国产| 欧美国产激情二区三区| 亚洲淫性视频| 欧美日韩精品在线视频| 亚洲成在人线av| 欧美一级视频| 亚洲精品美女在线观看播放| 久久久久久久久伊人| 国产伦精品一区二区| 亚洲少妇自拍| 亚洲黄色天堂| 久久香蕉精品| 国产一区欧美日韩| 欧美一区影院| 亚洲永久精品大片| 国产精品福利在线| 艳女tv在线观看国产一区| 欧美国产日本韩| 欧美在线视频a| 国产欧美日韩综合| 午夜视频精品| 亚洲一区二区三区视频| 国产精品成人观看视频免费| 一本色道久久综合亚洲精品小说 | 亚洲一区在线免费观看| 亚洲精品久久久久久久久久久久 | 嫩草影视亚洲| 亚洲国产精品成人综合色在线婷婷 | 亚洲午夜精品一区二区| 伊人婷婷久久| 久久看片网站| 欧美在线视频网站| 国产欧美在线播放| 久久久噜噜噜久久人人看| 午夜一级在线看亚洲| 国产婷婷色一区二区三区在线| 午夜视频一区| 性久久久久久| 激情欧美丁香| 欧美成人精品1314www| 久热精品在线| 99热这里只有精品8| 99国产精品一区| 国产精品久久久久一区| 欧美专区亚洲专区| 久久久999精品视频| 亚洲观看高清完整版在线观看| 欧美成人综合| 欧美日韩视频专区在线播放| 亚洲一区二区三| 性久久久久久久久| 亚洲国产精品免费| 亚洲精品一区二区在线观看| 欧美性一二三区| 久久久噜噜噜久久中文字幕色伊伊| 久久成人综合视频| 亚洲乱码国产乱码精品精可以看 | 久久久久久久一区| 亚洲精品一区二区在线| 艳妇臀荡乳欲伦亚洲一区| 国产精品一香蕉国产线看观看| 久久综合狠狠| 欧美视频不卡| 免费成人黄色| 欧美午夜久久| 欧美成ee人免费视频| 欧美另类一区| 久久久夜色精品亚洲| 欧美gay视频| 欧美在线视频日韩| 欧美大片一区| 久久久水蜜桃| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ入口 | 香蕉成人久久| 欧美国产免费| 久久久九九九九| 欧美日韩 国产精品| 久久亚洲国产精品日日av夜夜| 欧美另类高清视频在线| 老鸭窝91久久精品色噜噜导演| 欧美日韩国产综合久久| 美脚丝袜一区二区三区在线观看| 欧美日韩亚洲综合在线| 欧美成人国产| 国内精品美女av在线播放| 99成人精品| 日韩视频一区| 老牛国产精品一区的观看方式| 欧美三级在线视频| 日韩亚洲欧美成人| 久久夜色精品国产亚洲aⅴ | 一区二区三区在线视频观看| 亚洲午夜精品久久久久久浪潮| 亚洲精品国产精品久久清纯直播| 欧美亚洲一区二区在线观看| 亚洲一区久久久| 欧美日韩国产一区二区| 亚洲黄色高清| 亚洲高清一二三区| 蜜桃精品久久久久久久免费影院| 裸体一区二区| 伊人久久大香线蕉综合热线| 性色av一区二区三区红粉影视| 性欧美videos另类喷潮| 国产精品久久久久aaaa九色| 99日韩精品| 亚洲欧美在线免费| 国产精品视频一二| 亚洲一区在线免费| 久久成人亚洲| 国产一区二区三区av电影| 欧美影院成人| 蜜臀av国产精品久久久久| 精久久久久久| 久热精品在线| 亚洲国内自拍| 亚洲视频精品在线| 国产精品热久久久久夜色精品三区| 一区二区激情| 久久经典综合| 好吊色欧美一区二区三区视频| 亚洲精品国偷自产在线99热| 欧美极品一区| 亚洲香蕉在线观看| 久久久999精品视频| 影音先锋中文字幕一区| 欧美激情一二区| 亚洲一区视频在线| 免费成人性网站| 制服诱惑一区二区| 国产一区二区中文字幕免费看| 欧美一级在线亚洲天堂| 欧美成人精精品一区二区频| 一区二区三区国产在线观看| 国产欧美日韩精品专区| 另类欧美日韩国产在线| 日韩视频一区二区三区| 久久精品免费观看| 亚洲九九精品| 国产亚洲va综合人人澡精品| 欧美成人午夜77777| 亚洲视屏在线播放| 欧美成人精品1314www| 午夜视频一区在线观看| 亚洲国产综合91精品麻豆| 国产精品久久久久久久久久久久久 | 欧美日韩视频在线| 久久精品99国产精品| 亚洲美女视频网| 免费观看在线综合| 亚洲男人的天堂在线观看| 亚洲国产精彩中文乱码av在线播放| 欧美视频在线一区二区三区| 一区在线观看视频| 久久久久欧美精品| 国产精品久久久久久av福利软件| 中文在线资源观看视频网站免费不卡| 99精品热6080yy久久| 国产一区二区在线观看免费播放| 久久aⅴ国产欧美74aaa| 欧美另类久久久品| 亚洲第一中文字幕在线观看| 国产精品婷婷| 亚洲天堂成人在线观看| 亚洲尤物在线视频观看| 欧美日韩国产精品成人| 亚洲精品视频一区二区三区| 好吊妞**欧美| 久久久精彩视频| 欧美黄色免费|