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

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>
            亚洲欧洲日本国产| 欧美精品在线免费| 亚洲欧洲日产国产综合网| 亚洲一区二区伦理| 亚洲欧美国产高清va在线播| 一区二区三区不卡视频在线观看| 日韩视频在线观看| 夜夜狂射影院欧美极品| 亚洲天堂偷拍| 久久爱另类一区二区小说| 久久精品99国产精品日本| 久久久久九九九九| 欧美成人国产| 99精品热6080yy久久| 亚洲综合不卡| 噜噜爱69成人精品| 国产精品v片在线观看不卡| 国产欧美日韩综合精品二区| 在线精品在线| 亚洲一区二区三区精品视频| 久久精品国产视频| 亚洲国产日韩综合一区| 亚洲性视频网址| 久久亚洲国产精品日日av夜夜| 欧美理论电影网| 国内久久视频| 亚洲手机在线| 欧美大片免费观看| 亚洲一区二区在线免费观看视频| 久久久伊人欧美| 国产精品久久久一区麻豆最新章节| 国产免费成人av| 日韩写真在线| 久久综合99re88久久爱| 99在线精品视频在线观看| 欧美中文字幕第一页| 欧美日韩精品一区二区| 一区在线观看| 欧美在线视频日韩| 9l国产精品久久久久麻豆| 麻豆精品视频| 黄色av成人| 久久精品国产99国产精品澳门| 亚洲精品黄网在线观看| 久久天天躁狠狠躁夜夜av| 国产久一道中文一区| 亚洲一区在线播放| 亚洲精品欧美专区| 欧美成人午夜77777| 韩国成人福利片在线播放| 欧美亚洲一级| 亚洲小视频在线观看| 国产精品hd| 国产日韩一级二级三级| 亚洲欧美在线x视频| 欧美电影免费| 亚洲国产成人精品女人久久久| 性欧美精品高清| 一本色道久久综合亚洲二区三区 | 欧美极品aⅴ影院| 影音先锋一区| 老司机午夜精品视频在线观看| 欧美亚洲一区| 国产亚洲福利社区一区| 欧美在线视屏| 性8sex亚洲区入口| 国产日韩欧美中文在线播放| 亚洲欧美经典视频| 亚洲一区二区黄| 国产精品资源| 久久久久久久97| 久久久久久亚洲精品杨幂换脸| 国语自产精品视频在线看8查询8| 久久久人人人| 久久一区亚洲| 日韩午夜在线观看视频| 亚洲乱码国产乱码精品精98午夜| 欧美日韩免费观看一区二区三区 | 最近看过的日韩成人| 欧美福利电影在线观看| 99re热这里只有精品视频| 亚洲精品久久嫩草网站秘色| 欧美黄免费看| 亚洲欧洲99久久| 久久国产黑丝| 日韩午夜一区| 午夜精品久久99蜜桃的功能介绍| 国产欧美日韩精品专区| 久久综合精品一区| 欧美巨乳在线观看| 欧美在线综合视频| 免费久久久一本精品久久区| 中文欧美日韩| 久久精品欧美日韩| 一区二区三区四区五区精品| 亚洲欧美激情四射在线日 | 日韩性生活视频| 亚洲视频视频在线| 激情一区二区| 一区二区三区欧美视频| 国产亚洲欧美另类中文 | 91久久国产综合久久| 亚洲精品一区二| 国产主播一区二区| 亚洲精品少妇| 在线观看日产精品| 亚洲图片欧洲图片av| 在线播放一区| 亚洲摸下面视频| 999亚洲国产精| 久久久久一区二区三区| 亚洲影院在线观看| 欧美成人日本| 免费观看不卡av| 国产欧美韩日| 一本色道**综合亚洲精品蜜桃冫 | 日韩亚洲欧美一区二区三区| 亚洲欧美日韩在线综合| 一本色道久久综合亚洲91| 亚洲欧美美女| 亚洲性感激情| 欧美噜噜久久久xxx| 免费成人黄色片| 国产自产高清不卡| 亚洲欧美久久久| 亚洲欧美日韩精品综合在线观看 | 午夜激情久久久| 亚洲午夜久久久| 欧美日韩黄色大片| 91久久国产综合久久| 在线观看久久av| 久久久人成影片一区二区三区| 先锋影音网一区二区| 国产精品美女久久久久久久| 一本色道久久综合狠狠躁的推荐| 亚洲精品系列| 欧美精品 日韩| 亚洲精品一区在线观看| 亚洲麻豆av| 欧美日韩a区| 亚洲精品欧美在线| 日韩一级精品| 欧美日韩在线第一页| 亚洲日本欧美| 亚洲午夜精品一区二区| 国产精品色在线| 亚洲欧美视频在线观看视频| 欧美亚洲自偷自偷| 国产一区二区电影在线观看| 久久av一区| 欧美国产日本高清在线| 亚洲精品孕妇| 欧美亚洲成人网| 亚洲欧美另类久久久精品2019| 欧美专区福利在线| 亚洲第一页中文字幕| 欧美国产一区二区| 中文欧美在线视频| 久久亚洲春色中文字幕久久久| 亚洲国产高清在线观看视频| 欧美激情bt| 亚洲欧美视频| 亚洲国产女人aaa毛片在线| 一二美女精品欧洲| 国产日本欧洲亚洲| 欧美成人激情视频| 久久精品男女| 亚洲狠狠丁香婷婷综合久久久| 极品尤物av久久免费看| 欧美在线高清视频| 亚洲大片免费看| 亚洲一区二区综合| 黑人巨大精品欧美一区二区| 免费高清在线视频一区·| 亚洲精品网址在线观看| 久久精品国产亚洲aⅴ| 亚洲福利视频三区| 国产精品高潮呻吟久久av无限| 久久国产精品第一页| 亚洲激情视频网| 久久精品二区| 一区二区高清视频| 黄色亚洲精品| 国产精品久久国产三级国电话系列| 欧美一区激情| 亚洲精品视频一区二区三区| 久久精品国产免费观看| 一本色道久久综合狠狠躁篇的优点| 国产精品爽黄69| 欧美国产精品v| 久久久久综合| 小嫩嫩精品导航| 亚洲视屏在线播放| 亚洲国产一二三| 美女黄毛**国产精品啪啪| 亚洲欧美日韩另类| 一区二区三区视频在线看| 亚洲电影欧美电影有声小说| 国产精品入口日韩视频大尺度| 欧美精品 日韩|