Sieve of Eratosthenes

Sieve of Eratosthenes: algorithm steps for primes below 121 (including optimization of starting from prime's square).

In mathematics, the sieve of Eratosthenes is an ancient algorithm for finding all prime numbers up to any given limit.

It does so by iteratively marking as composite (i.e., not prime) the multiples of each prime, starting with the first prime number, 2. The multiples of a given prime are generated as a sequence of numbers starting from that prime, with constant difference between them that is equal to that prime.[1] This is the sieve's key distinction from using trial division to sequentially test each candidate number for divisibility by each prime.[2] Once all the multiples of each discovered prime have been marked as composites, the remaining unmarked numbers are primes.

The earliest known reference to the sieve (Ancient Greek: κόσκινον Ἐρατοσθένους, kóskinon Eratosthénous) is in Nicomachus of Gerasa's Introduction to Arithmetic,[3] an early 2nd cent. CE book which attributes it to Eratosthenes of Cyrene, a 3rd cent. BCE Greek mathematician, though describing the sieving by odd numbers instead of by primes.[4]

One of a number of prime number sieves, it is one of the most efficient ways to find all of the smaller primes. It may be used to find primes in arithmetic progressions.[5]

Overview

Sift the Two's and Sift the Three's:
The Sieve of Eratosthenes.
When the multiples sublime,
The numbers that remain are Prime.

Anonymous[6]

A prime number is a natural number that has exactly two distinct natural number divisors: the number 1 and itself.

To find all the prime numbers less than or equal to a given integer n by Eratosthenes' method:

  1. Create a list of consecutive integers from 2 through n: (2, 3, 4, ..., n).
  2. Initially, let p equal 2, the smallest prime number.
  3. Enumerate the multiples of p by counting in increments of p from 2p to n, and mark them in the list (these will be 2p, 3p, 4p, ...; the p itself should not be marked).
  4. Find the smallest number in the list greater than p that is not marked. If there was no such number, stop. Otherwise, let p now equal this new number (which is the next prime), and repeat from step 3.
  5. When the algorithm terminates, the numbers remaining not marked in the list are all the primes below n.

The main idea here is that every value given to p will be prime, because if it were composite it would be marked as a multiple of some other, smaller prime. Note that some of the numbers may be marked more than once (e.g., 15 will be marked both for 3 and 5).

As a refinement, it is sufficient to mark the numbers in step 3 starting from p2, as all the smaller multiples of p will have already been marked at that point. This means that the algorithm is allowed to terminate in step 4 when p2 is greater than n.[1]

Another refinement is to initially list odd numbers only, (3, 5, ..., n), and count in increments of 2p in step 3, thus marking only odd multiples of p. This actually appears in the original algorithm.[1][4] This can be generalized with wheel factorization, forming the initial list only from numbers coprime with the first few primes and not just from odds (i.e., numbers coprime with 2), and counting in the correspondingly adjusted increments so that only such multiples of p are generated that are coprime with those small primes, in the first place.[7]

Example

To find all the prime numbers less than or equal to 30, proceed as follows.

First, generate a list of integers from 2 to 30:

 2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

The first number in the list is 2; cross out every 2nd number in the list after 2 by counting up from 2 in increments of 2 (these will be all the multiples of 2 in the list):

 2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

The next number in the list after 2 is 3; cross out every 3rd number in the list after 3 by counting up from 3 in increments of 3 (these will be all the multiples of 3 in the list):

 2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

The next number not yet crossed out in the list after 3 is 5; cross out every 5th number in the list after 5 by counting up from 5 in increments of 5 (i.e. all the multiples of 5):

 2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

The next number not yet crossed out in the list after 5 is 7; the next step would be to cross out every 7th number in the list after 7, but they are all already crossed out at this point, as these numbers (14, 21, 28) are also multiples of smaller primes because 7 × 7 is greater than 30. The numbers not crossed out at this point in the list are all the prime numbers below 30:

 2  3     5     7          11    13          17    19          23                29

Algorithm and variants

Pseudocode

The sieve of Eratosthenes can be expressed in pseudocode, as follows:[8][9]

algorithm Sieve of Eratosthenes is
    input: an integer n > 1.
    output: all prime numbers from 2 through n.

    let A be an array of Boolean values, indexed by integers 2 to n,
    initially all set to true.
    
    for i = 2, 3, 4, ..., not exceeding n do
        if A[i] is true
            for j = i2, i2+i, i2+2i, i2+3i, ..., not exceeding n do
                set A[j] := false

    return all i such that A[i] is true.

This algorithm produces all primes not greater than n. It includes a common optimization, which is to start enumerating the multiples of each prime i from i2. The time complexity of this algorithm is O(n log log n),[9] provided the array update is an O(1) operation, as is usually the case.

Segmented sieve

As Sorenson notes, the problem with the sieve of Eratosthenes is not the number of operations it performs but rather its memory requirements.[9] For large n, the range of primes may not fit in memory; worse, even for moderate n, its cache use is highly suboptimal. The algorithm walks through the entire array A, exhibiting almost no locality of reference.

A solution to these problems is offered by segmented sieves, where only portions of the range are sieved at a time.[10] These have been known since the 1970s, and work as follows:[9][11]

  1. Divide the range 2 through n into segments of some size Δ ≤ n.
  2. Find the primes in the first (i.e. the lowest) segment, using the regular sieve.
  3. For each of the following segments, in increasing order, with m being the segment's topmost value, find the primes in it as follows:
    1. Set up a Boolean array of size Δ.
    2. Mark as non-prime the positions in the array corresponding to the multiples of each prime pm found so far, by enumerating its multiples in steps of p starting from the lowest multiple of p between m - Δ and m.
    3. The remaining non-marked positions in the array correspond to the primes in the segment. It is not necessary to mark any multiples of these primes, because all of these primes are larger than m, as for k ≥ 1, one has .

If Δ is chosen to be n, the space complexity of the algorithm is O(n), while the time complexity is the same as that of the regular sieve.[9]

For ranges with upper limit n so large that the sieving primes below n as required by the page segmented sieve of Eratosthenes cannot fit in memory, a slower but much more space-efficient sieve like the pseudosquares prime sieve, developed by Jonathan P. Sorenson, can be used instead.[12]

Incremental sieve

An incremental formulation of the sieve[2] generates primes indefinitely (i.e., without an upper bound) by interleaving the generation of primes with the generation of their multiples (so that primes can be found in gaps between the multiples), where the multiples of each prime p are generated directly by counting up from the square of the prime in increments of p (or 2p for odd primes). The generation must be initiated only when the prime's square is reached, to avoid adverse effects on efficiency. It can be expressed symbolically under the dataflow paradigm as

primes = [2, 3, ...] \ [[p², p²+p, ...] for p in primes],

using list comprehension notation with \ denoting set subtraction of arithmetic progressions of numbers.

Primes can also be produced by iteratively sieving out the composites through divisibility testing by sequential primes, one prime at a time. It is not the sieve of Eratosthenes but is often confused with it, even though the sieve of Eratosthenes directly generates the composites instead of testing for them. Trial division has worse theoretical complexity than that of the sieve of Eratosthenes in generating ranges of primes.[2]

When testing each prime, the optimal trial division algorithm uses all prime numbers not exceeding its square root, whereas the sieve of Eratosthenes produces each composite from its prime factors only, and gets the primes "for free", between the composites. The widely known 1975 functional sieve code by David Turner[13] is often presented as an example of the sieve of Eratosthenes[7] but is actually a sub-optimal trial division sieve.[2]

Algorithmic complexity

The sieve of Eratosthenes is a popular way to benchmark computer performance.[14] The time complexity of calculating all primes below n in the random access machine model is O(n log log n) operations, a direct consequence of the fact that the prime harmonic series asymptotically approaches log log n. It has an exponential time complexity with regard to length of the input, though, which makes it a pseudo-polynomial algorithm. The basic algorithm requires O(n) of memory.

The bit complexity of the algorithm is O(n (log n) (log log n)) bit operations with a memory requirement of O(n).[15]

The normally implemented page segmented version has the same operational complexity of O(n log log n) as the non-segmented version but reduces the space requirements to the very minimal size of the segment page plus the memory required to store the base primes less than the square root of the range used to cull composites from successive page segments of size O(n/log n).

A special (rarely, if ever, implemented) segmented version of the sieve of Eratosthenes, with basic optimizations, uses O(n) operations and O(nlog log n/log n) bits of memory.[16][17][18]

Using big O notation ignores constant factors and offsets that may be very significant for practical ranges: The sieve of Eratosthenes variation known as the Pritchard wheel sieve[16][17][18] has an O(n) performance, but its basic implementation requires either a "one large array" algorithm which limits its usable range to the amount of available memory else it needs to be page segmented to reduce memory use. When implemented with page segmentation in order to save memory, the basic algorithm still requires about O(n/log n) bits of memory (much more than the requirement of the basic page segmented sieve of Eratosthenes using O(n/log n) bits of memory). Pritchard's work reduced the memory requirement at the cost of a large constant factor. Although the resulting wheel sieve has O(n) performance and an acceptable memory requirement, it is not faster than a reasonably Wheel Factorized basic sieve of Eratosthenes for practical sieving ranges.

Euler's sieve

Euler's proof of the zeta product formula contains a version of the sieve of Eratosthenes in which each composite number is eliminated exactly once.[9] The same sieve was rediscovered and observed to take linear time by Gries & Misra (1978).[19] It, too, starts with a list of numbers from 2 to n in order. On each step the first element is identified as the next prime, is multiplied with each element of the list (thus starting with itself), and the results are marked in the list for subsequent deletion. The initial element and the marked elements are then removed from the working sequence, and the process is repeated:

 [2] (3) 5  7  9  11  13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79  ...
 [3]    (5) 7     11  13    17 19    23 25    29 31    35 37    41 43    47 49    53 55    59 61    65 67    71 73    77 79  ...
 [4]       (7)    11  13    17 19    23       29 31       37    41 43    47 49    53       59 61       67    71 73    77 79  ...
 [5]             (11) 13    17 19    23       29 31       37    41 43    47       53       59 61       67    71 73       79  ...
 [...]

Here the example is shown starting from odds, after the first step of the algorithm. Thus, on the kth step all the remaining multiples of the kth prime are removed from the list, which will thereafter contain only numbers coprime with the first k primes (cf. wheel factorization), so that the list will start with the next prime, and all the numbers in it below the square of its first element will be prime too.

Thus, when generating a bounded sequence of primes, when the next identified prime exceeds the square root of the upper limit, all the remaining numbers in the list are prime.[9] In the example given above that is achieved on identifying 11 as next prime, giving a list of all primes less than or equal to 80.

Note that numbers that will be discarded by a step are still used while marking the multiples in that step, e.g., for the multiples of 3 it is 3 × 3 = 9, 3 × 5 = 15, 3 × 7 = 21, 3 × 9 = 27, ..., 3 × 15 = 45, ..., so care must be taken dealing with this.[9]

See also

References

  1. ^ a b c Horsley, Rev. Samuel, F. R. S., "Κόσκινον Ερατοσθένους or, The Sieve of Eratosthenes. Being an account of his method of finding all the Prime Numbers," Philosophical Transactions (1683–1775), Vol. 62. (1772), pp. 327–347.
  2. ^ a b c d O'Neill, Melissa E., "The Genuine Sieve of Eratosthenes", Journal of Functional Programming, published online by Cambridge University Press 9 October 2008 doi:10.1017/S0956796808007004, pp. 10, 11 (contains two incremental sieves in Haskell: a priority-queue–based one by O'Neill and a list–based, by Richard Bird).
  3. ^ Hoche, Richard, ed. (1866), Nicomachi Geraseni Pythagorei Introductionis arithmeticae libri II, chapter XIII, 3, Leipzig: B.G. Teubner, p. 30
  4. ^ a b Nicomachus of Gerasa (1926), Introduction to Arithmetic; translated into English by Martin Luther D'Ooge; with studies in Greek arithmetic by Frank Egleston Robbins and Louis Charles Karpinski, chapter XIII, 3, New York: The Macmillan Company, p. 204
  5. ^ J. C. Morehead, "Extension of the Sieve of Eratosthenes to arithmetical progressions and applications", Annals of Mathematics, Second Series 10:2 (1909), pp. 88–104.
  6. ^ Clocksin, William F., Christopher S. Mellish, Programming in Prolog, 1984, p. 170. ISBN 3-540-11046-1.
  7. ^ a b Runciman, Colin (1997). "Functional Pearl: Lazy wheel sieves and spirals of primes" (PDF). Journal of Functional Programming. 7 (2): 219–225. doi:10.1017/S0956796897002670. S2CID 2422563.
  8. ^ Sedgewick, Robert (1992). Algorithms in C++. Addison-Wesley. ISBN 978-0-201-51059-1., p. 16.
  9. ^ a b c d e f g h Jonathan Sorenson, An Introduction to Prime Number Sieves, Computer Sciences Technical Report #909, Department of Computer Sciences University of Wisconsin-Madison, January 2, 1990 (the use of optimization of starting from squares, and thus using only the numbers whose square is below the upper limit, is shown).
  10. ^ Crandall & Pomerance, Prime Numbers: A Computational Perspective, second edition, Springer: 2005, pp. 121–24.
  11. ^ Bays, Carter; Hudson, Richard H. (1977). "The segmented sieve of Eratosthenes and primes in arithmetic progressions to 1012". BIT. 17 (2): 121–127. doi:10.1007/BF01932283. S2CID 122592488.
  12. ^ J. Sorenson, "The pseudosquares prime sieve", Proceedings of the 7th International Symposium on Algorithmic Number Theory. (ANTS-VII, 2006).
  13. ^ Turner, David A. SASL language manual. Tech. rept. CS/75/1. Department of Computational Science, University of St. Andrews 1975. (primes = sieve [2..]; sieve (p:nos) = p:sieve (remove (multsof p) nos); remove m = filter (not . m); multsof p n = rem n p==0). But see also Peter Henderson, Morris, James Jr., A Lazy Evaluator, 1976, where we find the following, attributed to P. Quarendon: primeswrt[x;l] = if car[l] mod x=0 then primeswrt[x;cdr[l]] else cons[car[l];primeswrt[x;cdr[l]]] ; primes[l] = cons[car[l];primes[primeswrt[car[l];cdr[l]]]] ; primes[integers[2]]; the priority is unclear.
  14. ^ Peng, T. A. (Fall 1985). "One Million Primes Through the Sieve". BYTE. pp. 243–244. Retrieved 19 March 2016.
  15. ^ Pritchard, Paul, "Linear prime-number sieves: a family tree," Sci. Comput. Programming 9:1 (1987), pp. 17–35.
  16. ^ a b Paul Pritchard, "A sublinear additive sieve for finding prime numbers", Communications of the ACM 24 (1981), 18–23. MR600730
  17. ^ a b Paul Pritchard, Explaining the wheel sieve, Acta Informatica 17 (1982), 477–485. MR685983
  18. ^ a b Paul Pritchard, "Fast compact prime number sieves" (among others), Journal of Algorithms 4 (1983), 332–344. MR729229
  19. ^ Gries, David; Misra, Jayadev (December 1978), "A linear sieve algorithm for finding prime numbers" (PDF), Communications of the ACM, 21 (12): 999–1003, doi:10.1145/359657.359660, hdl:1813/6407, S2CID 11990373.

Read other articles:

Jens Christian SkouLahir(1918-10-08)8 Oktober 1918Lemvig, DenmarkMeninggal28 Mei 2018(2018-05-28) (umur 99)Risskov, Aarhus, DenmarkKebangsaanDenmarkDikenal atasNa+,K+-ATPasePenghargaanNobel Kimia tahun 1997Karier ilmiahBidangFisiologi, Biofisika, Biokimia Jens Christian Skou (8 Oktober 1918 – 28 Mei 2018) adalah seorang dokter dan penerima Nobel asal Denmark. Ayahnya adalah seorang pedagang kayu dan batu bara. Jens belajar kedokteran di Universitas Kopenhagen. Pada tahun...

 

 

Luigi Di Biagio Di Biagio pada tahun 2013Informasi pribadiNama lengkap Luigi Di Biagio[1]Tanggal lahir 3 Juni 1971 (umur 52)Tempat lahir Roma, ItaliaTinggi 1,75 m (5 ft 9 in)Posisi bermain Gelandang bertahanKarier junior LazioKarier senior*Tahun Tim Tampil (Gol)1988–1989 Lazio 1 (0)1989–1992 Monza 62 (7)1992–1995 Foggia 87 (12)1995–1999 Roma 114 (16)1999–2003 Internazionale 117 (13)2003–2006 Brescia 93 (16)2007 Ascoli 8 (2)Total 482 (66)Tim nasional199...

 

 

I Love That Crazy Little ThingPosterNama lainTionghoa那件疯狂的小事叫爱情 SutradaraSnow ZouPemeranWilliam Chan Tang Yixin Jessica JungPerusahaanproduksiYinghuang (Beijing) Media Wanda Media Emperor Motion Pictures[1]DistributorEMP Distribution (Beijing) Wanda Shengshi Film Distribution[1]Tanggal rilis 12 Agustus 2016 (2016-08-12) NegaraTiongkokBahasaMandarinPendapatankotorCN¥ 36.5 juta[1] I Love That Crazy Little Thing adalah film komedi roma...

Voce principale: Bologna Football Club 1909. Bologna FCStagione 1976-1977I felsinei con la seconda maglia sbarrata Sport calcio Squadra Bologna Allenatore Gustavo Giagnoni Presidente Luciano Conti Serie A10º Coppa ItaliaSecondo turno Maggiori presenzeCampionato: Maselli (30) Miglior marcatoreCampionato: Clerici (7) StadioComunale 1975-1976 1977-1978 Si invita a seguire il modello di voce Questa voce raccoglie le informazioni riguardanti il Bologna Football Club nelle competizioni uffic...

 

 

Maja e Popljuces among other mountain tops Maja e Popllukës is a mountain in Albania in the Accursed Mountains range. It is 2,569 m (8,428 ft) high and it itself is surrounded by many peaks above 2,500 m (8,200 ft). It is located just south of Maja Jezercë. 42°25′53″N 19°33′00″E / 42.4314°N 19.55°E / 42.4314; 19.55 This article about a specific location in Kukës County, Albania, is a stub. You can help Wikipedia by expanding it.vte

 

 

Minecraft Gambar karya seni Minecraft. Gambar ini dirilis sekitar tahun 2017 Publikasi 17 Mei 2009. Windows, macOS, Linux. AndroidWW: 7 Oktober 2011[1] iOSWW: 17 November 2011[2] Xbox 360WW: 9 Mei 2012[3] Raspberry PiWW: 11 Febuari 2013[4] PlayStation 3NA: 17 Desember 2013EU: 18 Desember 2013 Fire OSWW: 2 April 2014[5] PlayStation 4WW: 4 September 2014[6] Xbox OneWW: 5 September 2014[7] PlayStation VitaNA: 14 Oktober 2014[8]EU: 1...

Egyptian queen in Sixth Dynasty of Egypt For other Egyptian ladies called Ankhesenpepi, see Ankhesenpepi. Ankhesenpepi IIIResting placePyramid in SaqqaraOccupationQueen of EgyptSpousePepi IIParentNemtyemsaf I Ankhesenpepiin hieroglyphs Era: Old Kingdom(2686–2181 BC) Ankhesenpepi III was an ancient Egyptian queen of the Sixth Dynasty as a consort of Pepi II, who was probably her uncle. She was a daughter of Merenre Nemtyemsaf I and was named after her grandmother, Ankhesenpepi I.[1&...

 

 

Champasak ProvinceLocation of Champasak Province in LaosCountryLaosCapitalPakxeLuas • Total15,415 km2 (5,952 sq mi)Populasi (2015) • Total694.023 • Kepadatan45/km2 (120/sq mi)Zona waktuUTC+07Kode ISO 3166LA-XI Champasak merupakan sebuah provinsi di Laos yang memiliki luas wilayah 15.415 km² dan populasi 694.023 jiwa (2015). Ibu kotanya ialah Pakxe. Peta Provinsi Champasak, Laos Pakse terlihat dari Champasak Palace Hotel, Provi...

 

 

Former U.S. House district in New Jersey NJ-14 redirects here. The term may also refer to New Jersey Route 14. New Jersey's 14th congressional districtObsolete districtCreated1930Eliminated1990Years active1933–1993 New Jersey's 14th congressional district in the House of Representatives was eliminated after the 1990 census. As a result of the congressional apportionment performed after this census, New Jersey lost one seat and was reduced to thirteen seats in the House of Representatives. N...

Season of television series Criminal Minds Season of television series Criminal MindsSeason 11Season 11 U.S. DVD coverStarring Joe Mantegna Shemar Moore Matthew Gray Gubler A.J. Cook Kirsten Vangsness Thomas Gibson Aisha Tyler No. of episodes22ReleaseOriginal networkCBSOriginal releaseSeptember 30, 2015 (2015-09-30) –May 4, 2016 (2016-05-04)Season chronology← PreviousSeason 10Next →Season 12List of episodes The eleventh season of Criminal Minds was ordered on Ma...

 

 

Road bridge in Jeollanam-do, South Korea Cheonsa Bridge천사대교 (Korean)Coordinates34°51′37.8″N 126°12′20.5″E / 34.860500°N 126.205694°E / 34.860500; 126.205694 (Second Saecheonnyeon Bridge)CarriesNational Route 2 (South Korea)CrossesYellow SeaLocaleJeollanam-do, South KoreaCharacteristicsDesignSuspension bridgeCable-stayed bridgeTotal length7,224 metres (23,701 ft)Height164 metres (538 ft) (east bridge)195 metres (640 ft) (w...

 

 

British greyhound racing venue Brighton and Hove Greyhound StadiumA view of the grandstand in 2007LocationBrighton and HoveOperatorEntain (Ladbrokes Coral)Opened1928TenantsGreyhound racingWebsiteOfficial website Brighton & Hove Greyhound Stadium is a greyhound racing track located in the Hove Park area of the city of Brighton and Hove, East Sussex.[1] The stadium also has a restaurant and a number of bars and is owned by the Gala Coral Group and race meetings are held every Thursd...

Gallarate komune di Italia Gallarate (it) Tempat Negara berdaulatItaliaDaerah di ItaliaLombardyProvinsi di ItaliaProvinsi Varese Ibu kota dariQ31432551 NegaraItalia Ibu kotaGallarate PendudukTotal52.811  (2023 )Bahasa resmiItalia GeografiLuas wilayah20,98 km² [convert: unit tak dikenal]Ketinggian238 m Berbatasan denganBesnate Busto Arsizio Casorate Sempione Cavaria con Premezzo Cassano Magnago Arsago Seprio Cardano al Campo Samarate SejarahSanto pelindungKristoforus Informasi tamba...

 

 

Type of programming paradigm in computer science This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Imperative programming – news · newspapers · books · scholar · JSTOR (October 2011) (Learn how and when to remove this message) In computer science, imperative programming is a programming paradigm of software th...

 

 

American gay rights activist (1925–2011) Frank KamenyKameny in 2010BornFranklin Edward Kameny(1925-05-21)May 21, 1925New York City, U.S.DiedOctober 11, 2011(2011-10-11) (aged 86)Washington, D.C., U.S.EducationQueens College (BS)Harvard University (MS, PhD)Known forGay rights activistFired for being gay by the U.S. Civil Service CommissionCo-founder of the Mattachine SocietyScientific careerFieldsAstronomyThesisA Photoelectric Study of Some RV Tauri and Yellow Semiregular Variables...

City in Indiana, United StatesAuburn, IndianaCityMain Street in downtown Auburn, Indiana SealNickname: Home of the ClassicsLocation of Auburn in DeKalb County, Indiana.AuburnLocation in IndianaShow map of IndianaAuburnAuburn (the United States)Show map of the United StatesAuburnAuburn (North America)Show map of North AmericaCoordinates: 41°22′36″N 85°02′56″W / 41.37667°N 85.04889°W / 41.37667; -85.04889[1]CountryUnited StatesStateIndianaCounty...

 

 

穆罕默德·阿赫桑Mohammad Ahsan基本資料代表國家/地區 印度尼西亞出生 (1987-09-07) 1987年9月7日(36歲)[1] 印度尼西亞南蘇門答臘省巨港[1]現居地 印度尼西亞雅加達身高1.74米(5英尺81⁄2英寸)[1]體重68公斤(150英磅)[2]握拍右手教練 彭偉信主項:男子双打首戰國際賽2003年入選國家隊2006年世界冠軍頭銜 世錦賽:3(男雙) 湯姆斯盃:1職業�...

 

 

Process of heat treating used to increase the toughness of iron-based alloys Differentially tempered steel. The various colors produced indicate the temperature the steel was heated to. Light straw indicates 204 °C (399 °F) and light blue indicates 337 °C (639 °F).[1][2] Tempering is a process of heat treating, which is used to increase the toughness of iron-based alloys. Tempering is usually performed after hardening, to reduce some of the excess hardn...

徐定超73岁容像 徐定超(1845年—1918年),字班侯,浙江永嘉县枫林人。清末民初官员、医学家。 生平 徐定超于光绪二年(1876年)中举人,光绪九年(1883年)成进士;同年五月,著以主事分部学习[1],授户部广东司主事,曾任户部则例馆纂修。光绪二十五年(1899年)被聘为京师大学堂医学教习。光绪三十二年(1906年)授山东道监察御史,次年转江西道、河南道。宣�...

 

 

This article is about the 2002 Major League Baseball season only. For information on all of baseball, see 2002 in baseball. Sports season2002 MLB seasonLeagueMajor League BaseballSportBaseballDurationMarch 31 – October 27, 2002Number of games162Number of teams30TV partner(s)Fox, ESPN/ABC FamilyDraftTop draft pickBryan BullingtonPicked byPittsburgh PiratesRegular SeasonSeason MVPAL: Miguel Tejada (OAK)NL: Barry Bonds (SF)PostseasonAL championsAnaheim Angels  AL runners-upMinnesota...