рдЧреЛ рдордзреАрд▓ рдЕрдЯреА рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреЗ рдЧреБрдг

рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрд╕реЗ рд╡рд╛рдЯрддреЗ рдХрд╛ рдХреА рд▓реВрдкрдордзреАрд▓ рдЪрд╛рдЪрдгреА рдкрд░рд┐рд╕реНрдерд┐рддреАрд╕рд╛рдареА рд╣реЗ рджреЛрди рдкрд░реНрдпрд╛рдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдд рд╕рдорддреБрд▓реНрдп рдЖрд╣реЗрдд?

		
if a > b && c*2 > d {
	....
}
// ╨╕
if a <= b  { 
  continue;
}
if c*2 > d {
 ....
}


рд╣реЗ рд╕рд░реНрд╡ тАЬрдмреНрд░реЗрди рд╡реЙрд░реНрдо-рдЕрдктАЭ рдиреЗ рд╕реБрд░реВ рдЭрд╛рд▓реЗ; рдорд▓рд╛ рдкреВрд░реНрдгрд╛рдВрдХрд╛рдВрдЪреНрдпрд╛ [-x....x] рдЕреЕрд░реЗрдордзреАрд▓ рд╕рд░реНрд╡рд╛рдд рдореЛрдареНрдпрд╛ рд╕рдо рд╕рдВрдЦреНрдпреЗрд╕рд╛рдареА рдЗрд╖реНрдЯрддрдо рд╢реЛрдзрд╛рдЪреЗ рдЙрджрд╛рд╣рд░рдг рджреНрдпрд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ. рдореА рд╡рд┐рдЪрд╛рд░ рдХрд░рдд рд╣реЛрддреЛ рдХреА рдПрдЦрд╛рджреА рд╕рдВрдЦреНрдпрд╛ рд╕рдо рдЖрд╣реЗ рдХреА рдирд╛рд╣реА рд╣реЗ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдореА 1 рдиреЗ рддрд╛рд░реНрдХрд┐рдХ рдЧреБрдгрд╛рдХрд╛рд░ рдХреЗрд▓рд╛ рддрд░ рдХрд┐рддреА рдЪрд╛рдВрдЧрд▓реА рдХрд╛рдордЧрд┐рд░реА рд╣реЛрдИрд▓.


//╤Г ╤З╨╡╤В╨╜╤Л╤Е ╤З╨╕╤Б╨╡╨╗ ╨┐╨╛╤Б╨╗╨╡╨┤╨╜╨╕╨╣ ╨▒╨╕╤В ╨▓╤Б╨╡╨│╨┤╨░ ╤А╨░╨▓╨╡╨╜ 0
value & 1 == 0
//vs ╨║╨╗╨░╤Б╤Б╨╕╤З╨╡╤Б╨║╨╕╨╣ ╨╝╨╡╤В╨╛╨┤
value % 2 == 0

рдорд╛рдЭрд╛ рдЧреЛ рдордзреАрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧрдЪрд╛ рдЕрдиреБрднрд╡ рдлрд╛рд░рд╕рд╛ рд╡рд┐рд╕реНрддреГрдд рдирд╛рд╣реА, рдлрдХреНрдд рджреАрдб рд╡рд░реНрд╖рд╛рдд, рдореА рддреЛ рд╡рд╛рдкрд░рд▓рд╛, рдЬрд░реА рдЕрдиреЗрдХрджрд╛, рдкрд░рдВрддреБ рдкреВрд░реНрдгрдкрдгреЗ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╡рд╛рджреА рд╣реЗрддреВрдВрд╕рд╛рдареА (рдЪрд╛рдВрдЧрд▓реЗ, рдХрджрд╛рдЪрд┐рдд рдЙрдЪреНрдЪ-рд▓реЛрдб http рд╕реЗрд╡реЗрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рдкреНрд░рдХрд▓реНрдк рд╡рдЧрд│рддрд╛), рдореНрд╣рдгреВрди рдореА рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реА. GoLand рдЙрдШрдбрд╛ рдЖрдгрд┐ рдПрдХ рд╕рд╛рдзреА рдЪрд╛рдЪрдгреА рд▓рд┐рд╣рд╛


package main
import (
	"fmt"
	"log"
	"math"
	"math/rand"
	"time"
)
const size = 100000000 //math.MaxInt32*2
type Result struct {
	Name     string
	Duration time.Duration
	Value    int32
}

func main() {
	log.Println("initial array capacity: " + fmt.Sprint(size))
	var maxValue int32
        // ╨С╤Г╨┤╨╡╨╝ ╨▓╨░╤А╤М╨╕╤А╨╛╨▓╨░╤В╤М ╨┤╨╕╨░╨┐╨░╨╖╨╛╨╜ ╤З╨╕╤Б╨╡╨╗ ╨╛╤В ╨╝╨╕╨╜╨╕╨╝╨░╨╗╤М╨╜╨╛╨│╨╛ 
        // ╨┤╨╛ ╨╝╨░╨║╤Б╨╕╨╝╨░╨╗╤М╨╜╨╛╨│╨╛. ╨з╨╡╨╝ ╨╝╨╡╨╜╤М╤И╨╡ ╨┤╨╕╨░╨┐╨░╨╖╨╛╨╜, ╤В╨╡╨╝ ╨▒╨╛╨╗╤М╤И╨╡ 
        // ╨┐╤А╨╛╤Ж╨╡╤Б╤Б╨╛╤А╨╜╨╛╨│╨╛ ╨▓╤А╨╡╨╝╨╡╨╜╨╕ ╨▒╤Г╨┤╨╡╤В ╤Г╤Е╨╛╨┤╨╕╤В╤М ╨╜╨░ ╨╛╨┐╨╡╤А╨░╤Ж╨╕╤О 
        // ╤Б╤А╨░╨▓╨╜╨╡╨╜╨╕╤П ╤В╨╡╨║╤Г╤Й╨╡╨│╨╛ ╤З╨╕╤Б╨╗╨░, ╤Б ╤А╨░╨╜╨╡╨╡ ╨╜╨░╨╣╨┤╨╡╨╜╨╜╤Л╨╝ ╨╕ ╨╜╨░╨╛╨▒╨╛╤А╨╛╤В
	for maxValue = 128; maxValue < math.MaxInt32/2+1; maxValue = maxValue * 2 {
		test(maxValue)
	}
}

func test(maxValue int32) {
	log.Println("max threshold: " + fmt.Sprint(maxValue))
	arr := make([]int32, size)
	for i := range arr {
		arr[i] = rand.Int31n(maxValue)
                // ╨▓ ╤В╨╡╤Б╤В╨╛╨▓╤Л╤Е ╨┤╨░╨╜╨╜╤Л╤Е ╨╜╨░╨╝ ╨╜╤Г╨╢╨╜╤Л ╨╕ ╨╛╤В╤А╨╕╤Ж╨░╤В╨╡╨╗╤М╨╜╤Л╨╡ ╤З╨╕╤Б╨╗╨░ 
		sign := rand.Intn(2)
		if sign == 1 {
			arr[i] = -arr[i]
		}
	}

        // ╨╖╨░╨┐╤Г╤Б╨║╨░╨╡╨╝ ╤В╨╡╤Б╤В "╨┤╨╡╨╗╨╡╨╜╨╕╨╡ ╤Б ╨╛╤Б╤В╨░╤В╨║╨╛╨╝"
	result := maxEvenDividing("maxEvenDividing", arr)
	log.Printf(result.Name+"t result: "+fmt.Sprint(result.Value)+"ttduration %s", result.Duration)

        // ╨╖╨░╨┐╤Г╤Б╨║╨░╨╡╨╝ ╤В╨╡╤Б╤В "╨║╨╛╨╜╤К╤О╨╜╨║╤Ж╨╕╨╕"
	result = maxEvenConjunction("maxEvenConjunction", arr)
	log.Printf(result.Name+"t result: "+fmt.Sprint(result.Value)+"ttduration %s", result.Duration)
}

func maxEvenDividing(name string, arr []int32) Result {
	start := time.Now()
	var current int32 = math.MinInt32
	for _, value := range arr {
		if value > current && value%2 == 0 {
			current = value
		}
	}
	duration := time.Since(start)
	result := Result{name, duration, current}
	return result
}

func maxEvenConjunction(name string, arr []int32) Result {
	start := time.Now()
	var current int32 = math.MinInt32
	for _, value := range arr {
		if value > current && value&1 == 0 {
			current = value
		}
	}
	duration := time.Since(start)
	result := Result{name, duration, current}
	return result
}

рдЖрдореНрд╣рд╛рд▓рд╛ рдПрдХ рдкрд░рд┐рдгрд╛рдо рдорд┐рд│рддреЛ рдЬреЛ рджрд░реНрд╢рд╡рд┐рддреЛ рдХреА рдереНрд░реЗрд╢реЛрд▓реНрдб рдЬрд┐рддрдХрд╛ рдЬрд╛рд╕реНрдд рдЕрд╕реЗрд▓ рддрд┐рддрдХреЗ рдЬрд╛рд╕реНрдд рд╡реЗрд│рд╛ рдХрд╛рдордЧрд┐рд░реАрдордзреНрдпреЗ рдЪрдв-рдЙрддрд╛рд░ рджрд┐рд╕реВрди рдпреЗрддрд╛рдд.

рддреБрд▓рдирд╛ рдХрд░рд╛max threshold: 128
maxEvenDividing result: 126 duration 116.0067ms
maxEvenConjunction result: 126 duration 116.0066ms

max threshold: 16384
maxEvenDividing result: 16382 duration 115.0066ms
maxEvenConjunction result: 16382 duration 111.0064ms

......

max threshold: 8388608
maxEvenDividing result: 8388606 duration 109.0063ms
maxEvenConjunction result: 8388606 duration 109.0062ms

max threshold: 16777216
maxEvenDividing result: 16777214 duration 108.0062ms
maxEvenConjunction result: 16777214 duration 109.0062ms

max threshold: 33554432
maxEvenDividing result: 33554430 duration 114.0066ms
maxEvenConjunction result: 33554430 duration 110.0063ms

max threshold: 67108864
maxEvenDividing result: 67108860 duration 111.0064ms
maxEvenConjunction result: 67108860 duration 109.0062ms

max threshold: 134217728
maxEvenDividing result: 134217726 duration 108.0062ms
maxEvenConjunction result: 134217726 duration 109.0063ms

max threshold: 268435456
maxEvenDividing result: 268435446 duration 111.0063ms
maxEvenConjunction result: 268435446 duration 110.0063ms

рд╣реЗ рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ рдХреА рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдереНрд░реЗрд╢реЛрд▓реНрдбрд╕рд╛рдареА рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЪрд╛рдЪрдгреА рдбреЗрдЯрд╛рдЪреЗ рд╡реЗрдЧрд╡реЗрдЧрд│реЗ рд╕рдВрдЪ рдЖрд╣реЗрдд, рдкреНрд░реЛрд╕реЗрд╕рд░ рд▓реЛрдб (рдорд╛рдЭреНрдпрд╛ i5-2540M рд▓реЕрдкрдЯреЙрдкрд╡рд░) рд╕реБрдорд╛рд░реЗ 20..30% рдмрджрд▓рддреЛ, GoLand рд╡рд░реВрди рдЪрд╛рд▓реВ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рджреНрд╡рд╛рд░реЗ рд╡реНрдпрд╛рдкрд▓реЗрд▓реА рдореЗрдорд░реА рд╕рд░рд╛рд╕рд░реА рдЖрд╣реЗ. рд╕реБрдорд╛рд░реЗ 813MB - рдпрд╛рдЪрд╛ рдкрд░рд┐рдгрд╛рдорд╛рдЪреНрдпрд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рд░реНрд╣рддреЗрд╡рд░ рджреЗрдЦреАрд▓ рдкрд░рд┐рдгрд╛рдо рд╣реЛрддреЛ, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдбрд┐рд╕реНрдХрд╡рд░ рдЪрд╛рдЪрдгреА рдкреНрд░рдХрд░рдгреЗ рдЬрддрди рдХрд░рдгреНрдпрд╛рдЪреА рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрд╢реЛрд▓реНрдбрд╕рд╛рдареА рд╕рд░реНрд╡ рдЪрд╛рдЪрдгреНрдпрд╛ рдПрдХрдореЗрдХрд╛рдВрдкрд╛рд╕реВрди рдЕрд▓рдЧ рдареЗрд╡рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ.

рдЖрдгрд┐ рдЖрддрд╛, рдХрдореАрддрдХрдореА рдЦрд░реНрдЪрд╛рдд рд╣реЗ рд╕рд░реНрд╡ рдХрд╕реЗ рдЕрдВрдорд▓рд╛рдд рдЖрдгрд╛рдпрдЪреЗ рдпрд╛рдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрди, рдореА рдЖрдкреЛрдЖрдк рд╕реНрдерд┐рддреА рддрдкрд╛рд╕рдгреА рджреБрд░реБрд╕реНрдд рдХрд░рддреЛ

		
if value > current && value&1 == 0 {
	current = value
}

рд╡рд░

		
if value <= current {
        continue;
}
if value&1 == 0 {
	current = value
}

рдореА рдкреБрдиреНрд╣рд╛ рдЪрд╛рдЪрдгреНрдпрд╛ рдШреЗрддреЛ... рдЖрдгрд┐ рдорд▓рд╛ рдХрд╛рд╣реАрд╣реА рд╕рдордЬрдгреЗ рдмрдВрдж рд╣реЛрддреЗ :)

рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╛рдареА рдШрд╛рд▓рд╡рд▓реЗрд▓рд╛ рд╡реЗрд│ рдпрд╛рдкреБрдвреЗ рдЯрдХреНрдХреЗрд╡рд╛рд░реА/рдЕрдкреВрд░реНрдгрд╛рдВрдХрд╛рдВрдиреБрд╕рд╛рд░ рднрд┐рдиреНрди рдирд╕реВрди 10..15% рдиреЗ рд╕реБрд░реВ рд╣реЛрддреЛ. рдореА рдкрдЯрдХрди рдЖрдгрдЦреА 2 рдЪрд╛рдЪрдгреНрдпрд╛ рдЬреЛрдбрддреЛ:

		
func maxEvenDividing2(name string, arr []int32) Result {
	start := time.Now()
	var current int32 = math.MinInt32
	for _, value := range arr {
		if value <= current {
			continue
		}

		if value%2 == 0 {
			current = value
		}
	}
	duration := time.Since(start)
	result := Result{name, duration, current}
	return result
}

func maxEvenConjunction2(name string, arr []int32) Result {
	start := time.Now()
	var current int32 = math.MinInt32
	for _, value := range arr {
		if value <= current {
			continue
		}
		if value&1 == 0 {
			current = value
		}
	}
	duration := time.Since(start)
	result := Result{name, duration, current}
	return result
}

рдореА рддреЗ рдЪрд╛рд▓рд╡рддреЛ рдЖрдгрд┐ рд╣реЗ рдЪрд┐рддреНрд░ рдорд┐рд│рд╡рддреЛ:рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕреЕрд░реЗ рдХреНрд╖рдорддрд╛: 100000000

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 126 рдХрд╛рд▓рд╛рд╡рдзреА 116.0066ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 126 рдХрд╛рд▓рд╛рд╡рдзреА 79.0045ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 126 рдХрд╛рд▓рд╛рд╡рдзреА 114.0065ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 126 рдХрд╛рд▓рд╛рд╡рдзреА 83.0048ms

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 254 рдХрд╛рд▓рд╛рд╡рдзреА 111.0063ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 254 рдХрд╛рд▓рд╛рд╡рдзреА 77.0044ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 254 рдХрд╛рд▓рд╛рд╡рдзреА 110.0063ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 254 рдХрд╛рд▓рд╛рд╡рдзреА 80.0046ms

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 510 рдХрд╛рд▓рд╛рд╡рдзреА 114.0066ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 510 рдХрд╛рд▓рд╛рд╡рдзреА 80.0045ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 510 рдХрд╛рд▓рд╛рд╡рдзреА 110.0063ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 510 рдХрд╛рд▓рд╛рд╡рдзреА 80.0046ms

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 1022 рдХрд╛рд▓рд╛рд╡рдзреА 109.0063ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 1022 рдХрд╛рд▓рд╛рд╡рдзреА 77.0044ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 1022 рдХрд╛рд▓рд╛рд╡рдзреА 111.0063ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 1022 рдХрд╛рд▓рд╛рд╡рдзреА 81.0047ms

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 2046 рдХрд╛рд▓рд╛рд╡рдзреА 114.0065ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 2046 рдХрд╛рд▓рд╛рд╡рдзреА 79.0045ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 2046 рдХрд╛рд▓рд╛рд╡рдзреА 113.0065ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 2046 рдХрд╛рд▓рд╛рд╡рдзреА 81.0046ms

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 4094 рдХрд╛рд▓рд╛рд╡рдзреА 114.0065ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 4094 рдХрд╛рд▓рд╛рд╡рдзреА 80.0046ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 4094 рдХрд╛рд▓рд╛рд╡рдзреА 111.0063ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 4094 рдХрд╛рд▓рд╛рд╡рдзреА 78.0045ms

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 8190 рдХрд╛рд▓рд╛рд╡рдзреА 107.0062ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 8190 рдХрд╛рд▓рд╛рд╡рдзреА 77.0044ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 8190 рдХрд╛рд▓рд╛рд╡рдзреА 111.0063ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 8190 рдХрд╛рд▓рд╛рд╡рдзреА 77.0044ms

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 16382 рдХрд╛рд▓рд╛рд╡рдзреА 109.0063ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 16382 рдХрд╛рд▓рд╛рд╡рдзреА 77.0044ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 16382 рдХрд╛рд▓рд╛рд╡рдзреА 108.0062ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 16382 рдХрд╛рд▓рд╛рд╡рдзреА 77.0044ms

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 32766 рдХрд╛рд▓рд╛рд╡рдзреА 112.0064ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 32766 рдХрд╛рд▓рд╛рд╡рдзреА 77.0044ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 32766 рдХрд╛рд▓рд╛рд╡рдзреА 109.0062ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 32766 рдХрд╛рд▓рд╛рд╡рдзреА 78.0045ms

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 65534 рдХрд╛рд▓рд╛рд╡рдзреА 109.0062ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 65534 рдХрд╛рд▓рд╛рд╡рдзреА 75.0043ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 65534 рдХрд╛рд▓рд╛рд╡рдзреА 109.0063ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 65534 рдХрд╛рд▓рд╛рд╡рдзреА 79.0045ms

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 131070 рдХрд╛рд▓рд╛рд╡рдзреА 108.0061ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 131070 рдХрд╛рд▓рд╛рд╡рдзреА 76.0044ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 131070 рдХрд╛рд▓рд╛рд╡рдзреА 110.0063ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 131070 рдХрд╛рд▓рд╛рд╡рдзреА 80.0046ms

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 262142 рдХрд╛рд▓рд╛рд╡рдзреА 110.0063ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 262142 рдХрд╛рд▓рд╛рд╡рдзреА 76.0044ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 262142 рдХрд╛рд▓рд╛рд╡рдзреА 107.0061ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 262142 рдХрд╛рд▓рд╛рд╡рдзреА 78.0044ms

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 524286 рдХрд╛рд▓рд╛рд╡рдзреА 109.0062ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 524286 рдХрд╛рд▓рд╛рд╡рдзреА 78.0045ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 524286 рдХрд╛рд▓рд╛рд╡рдзреА 109.0062ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 524286 рдХрд╛рд▓рд╛рд╡рдзреА 80.0046ms

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 1048574 рдХрд╛рд▓рд╛рд╡рдзреА 109.0063ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 1048574 рдХрд╛рд▓рд╛рд╡рдзреА 80.0045ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 1048574 рдХрд╛рд▓рд╛рд╡рдзреА 114.0066ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 1048574 рдХрд╛рд▓рд╛рд╡рдзреА 78.0044ms

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 2097150 рдХрд╛рд▓рд╛рд╡рдзреА 111.0064ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 2097150 рдХрд╛рд▓рд╛рд╡рдзреА 79.0045ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 2097150 рдХрд╛рд▓рд╛рд╡рдзреА 112.0064ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 2097150 рдХрд╛рд▓рд╛рд╡рдзреА 77.0044ms

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 4194302 рдХрд╛рд▓рд╛рд╡рдзреА 111.0063ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 4194302 рдХрд╛рд▓рд╛рд╡рдзреА 78.0045ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 4194302 рдХрд╛рд▓рд╛рд╡рдзреА 111.0063ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 4194302 рдХрд╛рд▓рд╛рд╡рдзреА 77.0044ms

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 8388606 рдХрд╛рд▓рд╛рд╡рдзреА 109.0062ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 8388606 рдХрд╛рд▓рд╛рд╡рдзреА 78.0045ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 8388606 рдХрд╛рд▓рд╛рд╡рдзреА 114.0065ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 8388606 рдХрд╛рд▓рд╛рд╡рдзреА 78.0045ms

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 16777214 рдХрд╛рд▓рд╛рд╡рдзреА 109.0062ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 16777214 рдХрд╛рд▓рд╛рд╡рдзреА 77.0044ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 16777214 рдХрд╛рд▓рд╛рд╡рдзреА 109.0063ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 16777214 рдХрд╛рд▓рд╛рд╡рдзреА 77.0044ms

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 33554430 рдХрд╛рд▓рд╛рд╡рдзреА 113.0065ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 33554430 рдХрд╛рд▓рд╛рд╡рдзреА 78.0045ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 33554430 рдХрд╛рд▓рд╛рд╡рдзреА 110.0063ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 33554430 рдХрд╛рд▓рд╛рд╡рдзреА 80.0045ms

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 67108860 рдХрд╛рд▓рд╛рд╡рдзреА 112.0064ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 67108860 рдХрд╛рд▓рд╛рд╡рдзреА 77.0044ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 67108860 рдХрд╛рд▓рд╛рд╡рдзреА 112.0064ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 67108860 рдХрд╛рд▓рд╛рд╡рдзреА 80.0046ms

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 134217726 рдХрд╛рд▓рд╛рд╡рдзреА 109.0063ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 134217726 рдХрд╛рд▓рд╛рд╡рдзреА 78.0044ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 134217726 рдХрд╛рд▓рд╛рд╡рдзреА 114.0065ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 134217726 рдХрд╛рд▓рд╛рд╡рдзреА 81.0047ms

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 268435446 рдХрд╛рд▓рд╛рд╡рдзреА 111.0064ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 268435446 рдХрд╛рд▓рд╛рд╡рдзреА 79.0045ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 268435446 рдХрд╛рд▓рд╛рд╡рдзреА 114.0065ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 268435446 рдХрд╛рд▓рд╛рд╡рдзреА 79.0045ms

рдХрдорд╛рд▓ рдорд░реНрдпрд╛рджрд╛: резреирео
maxEvenDividing рдкрд░рд┐рдгрд╛рдо: 536870910 рдХрд╛рд▓рд╛рд╡рдзреА 107.0062ms
maxEvenDiving2 рдкрд░рд┐рдгрд╛рдо: 536870910 рдХрд╛рд▓рд╛рд╡рдзреА 76.0043ms
maxEvenConjunction рдкрд░рд┐рдгрд╛рдо: 536870910 рдХрд╛рд▓рд╛рд╡рдзреА 109.0062ms
maxEvenConjunction2 рдкрд░рд┐рдгрд╛рдо: 536870910 рдХрд╛рд▓рд╛рд╡рдзреА 80.0046ms

рдорд▓рд╛ рд╕реНрдкрд╖реНрдЯ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рд╕рд╛рдкрдбрд▓реЗ рдирд╛рд╣реА рдХреА рдЧреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛрдб рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд╛ рдХрд░рдд рдирд╛рд╣реА рдЖрдгрд┐ рдиреЗрд╣рдореА рджреБрд╕рд░реА рдЕрдЯ рддрдкрд╛рд╕рддреЛ, рдЬрд░реА рдкрд╣рд┐рд▓реА рдЦреЛрдЯреА рдЕрд╕рд▓реА рддрд░реАрд╣реА. рдХрд┐рдВрд╡рд╛ рдХрджрд╛рдЪрд┐рдд рдорд╛рдЭреЗ рдбреЛрд│реЗ рдлрдХреНрдд рдЕрд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗрдд рдЖрдгрд┐ рдорд▓рд╛ рдХреЛрдгрддреАрд╣реА рд╕реНрдкрд╖реНрдЯ рдЪреВрдХ рджрд┐рд╕рдд рдирд╛рд╣реА? рдХрд┐рдВрд╡рд╛ рдХрдВрдкрд╛рдЗрд▓рд░рд▓рд╛ рдХрд╛рд╣реА рд╡рд┐рд╢реЗрд╖ рд╕реВрдЪрдирд╛ рджреЗрдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдЖрд╣реЗ рдХрд╛? рд╕рдордЬреВрддрджрд╛рд░ рдЯрд┐рдкреНрдкрдгреНрдпрд╛рдВрдмрджреНрджрд▓ рдорд▓рд╛ рдЖрдирдВрдж рд╣реЛрдИрд▓.

PS: рд╣реЛрдп, рдлрдХреНрдд рдордиреЛрд░рдВрдЬрдирд╛рд╕рд╛рдареА, рдореА Java 5 рдЖрдгрд┐ Java 7/8 рд╡рд░ рд╕рдорд╛рди рдЪрд╛рдЪрдгреНрдпрд╛ рдХреЗрд▓реНрдпрд╛ - рд╕рд░реНрд╡ рдХрд╛рд╣реА рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ, рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреА рд╡реЗрд│ рд╕рдорд╛рди рдЖрд╣реЗ.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛