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

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 閱讀(1706) 評論(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>
            亚洲精品老司机| 好看的av在线不卡观看| 国产一区二区三区日韩| 亚洲欧美一区二区三区极速播放| 欧美激情第4页| 欧美极品一区二区三区| 99re在线精品| 99re成人精品视频| 国产精品网红福利| 久久久www成人免费毛片麻豆| 亚洲欧美日韩网| 国产自产v一区二区三区c| 欧美国产日韩免费| 欧美一级久久| 久久久久久久一区二区三区| 国产夜色精品一区二区av| 麻豆久久精品| 欧美伦理影院| 久久er精品视频| 蜜臀av在线播放一区二区三区| 亚洲日本久久| 亚洲伊人观看| 亚洲国产日韩欧美在线99| 亚洲精品国精品久久99热| 国产精品美女999| 麻豆精品视频| 欧美色视频日本高清在线观看| 欧美在线视频网站| 欧美福利影院| 欧美在线综合视频| 欧美另类视频在线| 久久久久久黄| 欧美日韩国产一中文字不卡| 久久xxxx精品视频| 欧美日韩国产一区二区| 久久久久久综合网天天| 欧美日韩国产区| 能在线观看的日韩av| 欧美视频在线一区二区三区| 久久综合狠狠| 欧美小视频在线观看| 麻豆精品视频在线观看| 国产精品九九| 亚洲精品国产欧美| 国产精品中文在线| 亚洲九九精品| 亚洲精品日韩激情在线电影| 亚洲一区自拍| 一区二区三区免费网站| 久久亚洲春色中文字幕久久久| 亚洲小说欧美另类社区| 欧美v日韩v国产v| 久久精品亚洲精品| 国产精品美女久久久免费| 欧美成人精品一区二区三区| 国产亚洲成年网址在线观看| 99精品热视频只有精品10| 一区二区三区精品在线 | 国产精品极品美女粉嫩高清在线| 免费亚洲一区| 国产一区日韩二区欧美三区| 亚洲性感美女99在线| 亚洲国产精品va在线看黑人动漫| 亚洲女同精品视频| 欧美亚洲午夜视频在线观看| 欧美日韩视频在线一区二区观看视频| 欧美黄污视频| 亚洲第一黄色| 久久久久久穴| 久久欧美中文字幕| 国产在线观看91精品一区| 亚洲欧美日韩综合国产aⅴ| 亚洲欧美日韩直播| 国产精品久久婷婷六月丁香| 野花国产精品入口| 亚洲一区二区三区激情| 欧美三日本三级三级在线播放| 亚洲精选一区| 亚洲欧美日韩专区| 国产精品v日韩精品| 在线视频日韩精品| 欧美一区二区三区免费看| 国产精品高精视频免费| 亚洲一区二区在| 久久精品综合一区| 尤物网精品视频| 欧美va亚洲va香蕉在线| 99精品视频免费观看视频| 亚洲一本视频| 好吊色欧美一区二区三区四区| 午夜激情综合网| 欧美在线一二三| 精品成人在线观看| 欧美成年人网站| 亚洲精品视频一区二区三区| 亚洲麻豆视频| 国产精品日韩欧美一区二区三区 | 亚洲天天影视| 国产精品一区二区你懂的| 久久激情视频| 亚洲精品一区二区三区av| av成人激情| 国产日韩精品一区二区| 久久午夜视频| 亚洲一区综合| 亚洲高清免费视频| 午夜日韩视频| 亚洲国产精品欧美一二99| 欧美视频导航| 久久久久久久波多野高潮日日| 最新国产成人av网站网址麻豆| 亚洲视频久久| 亚洲第一综合天堂另类专| 欧美日韩另类一区| 久久手机精品视频| 亚洲一区二区视频在线| 亚洲高清在线| 久久精品免费看| 中文有码久久| 亚洲国产激情| 国产有码一区二区| 欧美日韩中文字幕在线| 欧美在线一二三区| 亚洲午夜免费视频| 91久久精品www人人做人人爽| 欧美在线欧美在线| 亚洲午夜在线| 亚洲精品免费在线观看| 激情久久久久| 国产一区二区三区奇米久涩| 国产精品成人观看视频免费 | 久久成人精品无人区| 一区二区国产在线观看| 美女脱光内衣内裤视频久久网站| 亚洲视频狠狠| 亚洲视频一区二区在线观看| 亚洲电影av| 精品动漫一区二区| 亚洲综合色自拍一区| 欧美jjzz| 欧美成人蜜桃| 欧美777四色影视在线| 久久久久久国产精品mv| 欧美有码视频| 欧美一区二区三区免费看 | 久久漫画官网| 久久www免费人成看片高清| 午夜精品一区二区三区四区| 亚洲影院色在线观看免费| 亚洲天堂激情| 亚洲欧美激情一区二区| 亚洲尤物在线视频观看| 亚洲免费在线电影| 亚洲欧美日韩系列| 欧美在线视频一区| 久久久久国产一区二区三区| 正在播放亚洲一区| 一区二区三区欧美在线观看| 一区二区欧美精品| 亚洲中字在线| 久久精品一区二区国产| 久久综合给合久久狠狠色| 欧美成人嫩草网站| 免费亚洲视频| 亚洲人成人99网站| 亚洲精品视频在线播放| 日韩视频国产视频| 亚洲综合不卡| 久久精品99国产精品| 免费永久网站黄欧美| 欧美日韩免费在线视频| 国产精品欧美日韩| 韩国av一区二区三区四区| 亚洲国产精品成人精品| 一区二区三区黄色| 久久成人这里只有精品| 久久久亚洲国产天美传媒修理工| 久久久久久久久久看片| 亚洲第一精品福利| 一区二区三区久久网| 久久爱www.| 欧美精品福利在线| 国产婷婷成人久久av免费高清| 永久域名在线精品| 亚洲午夜未删减在线观看| 午夜国产不卡在线观看视频| 美日韩精品视频免费看| 亚洲日本va午夜在线电影| 亚洲欧美在线一区二区| 欧美成人一区在线| 国产欧美在线视频| 亚洲第一天堂av| 午夜宅男久久久| 欧美大成色www永久网站婷| 亚洲视频导航| 欧美成va人片在线观看| 国产一区二区在线观看免费播放| 亚洲精品久久久久久久久久久久| 亚洲欧美一区二区激情| 亚洲精品美女免费|