рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдкрдиреЗ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд╕реЛрдЪрд╛ рдХрд┐ рдкреНрд░рдердо рд╕реЗ рдПрди рддрдХ рдХреЗ рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ? рд╣рдо рдЕрдкрдиреА рдЬрд░реВрд░рдд рдХреА рд╣рд░ рдЪреАрдЬ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рддреНрдпрд╛рдЧрддреЗ рд╣реИрдВ - рдПрдХ рд╕рдлрд▓ рд░рдгрдиреАрддрд┐ рдХрд╛ рдиреБрд╕реНрдЦрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рднреА рддреЗрдЬ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕реЗрд╡рд╛ рдореЗрдВ рд▓реЗрдирд╛ рдФрд░ рд╡рд┐рднрд╛рдЬрди рдЬреИрд╕реЗ рд╕рднреА рд╢реНрд░рдо-рдЧрд╣рди рд▓реЛрдЧреЛрдВ рдХреЛ рддреНрдпрд╛рдЧрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдФрд░ рдЬрд┐рд╕рдиреЗ рд╡рд┐рднрд╛рдЬрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрднрд╛рдЬреНрдп рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдЙрд╕рдиреЗ рдорд╛рдирд╡рддрд╛ рдкрд░ рдПрдХ рдЪрд╛рд▓ рдЪрд▓реА рд╣реИред рдорд┐рд▓реЗрдирд┐рдпрд╛ рдмреАрдд рдЧрдпрд╛, рдФрд░ рд▓реЛрдЧ рдЕрднреА рднреА рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ ...
рдкрд╣рд▓рд╛ рдХреЛрдб:
public HashMap<Long, Long> serialPrimes() {
long range = Long.parseLong(this.range.getText().toString());
HashMap<Long, Long> primes = new HashMap<>(); //
HashMap<Long, ArrayList<Long>> spectres = new HashMap<>(); //
HashMap<Long, ArrayList<Long>> toppings = new HashMap<>(); //
for(long i = 2; i < range; i++){
if(toppings.keySet().contains(i)) { // , i
//
ArrayList<Long> spectre = toppings.get(i);
spectres.put(i, spectre);
toppings.remove(i);
for(long spectreValue : spectre) {
//
long topping = primes.get(spectreValue) + spectreValue;
primes.put(spectreValue, topping);
//
if(toppings.keySet().contains(topping)) {
toppings.get(topping).add(spectreValue);
} else {
ArrayList<Long> newSpectre = new ArrayList<>();
newSpectre.add(spectreValue);
toppings.put(topping, newSpectre);
}
}
} else { // , i
//
primes.put(i, i + i); // ,
//
//
ArrayList<Long> newSpectre = new ArrayList<>();
newSpectre.add(i);
toppings.put(i + i, newSpectre);
}
}
return primes;
}
рдЕрдм рдПрдХ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдгред
, .
API P2P .
, -.
3 :
:
- , 2 ()
- T
- ,
- 2*n (, 2[4])
- 4[2]
- ,
- ( , )
, .
1.500.000. , 2 . -, 3.000.000. 96 , 14 ( , ).
2 рд╕реЗ 3.000.000 рддрдХ рдХреА рд╕реАрдорд╛ рдореЗрдВ 216.816 рдкреНрд░рд┐рдореНрд╕ рд╣реИрдВред
Android рдЙрджрд╛рд╣рд░рдг
рдкреБрдирд╢реНрдЪ: рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕реБрд╕реНрддреА рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЕрдкрд░рд╛рдзреЛрдВ рдХреА рд╢реНрд░реЗрдгреА рдХреА рдЧрдгрдирд╛ рдПрд░рд╛рдЯреЛрд╕реНрдердиреАрдЬ рдХреА рдЫрд▓рдиреА рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ рдпрд╛ рдХреЗрд╡рд▓ рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрдЦреНрдпрд╛ рдХреА рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рддреА рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рдЙрдирдХреЗ рдкреВрд░реНрдг рдЕрдиреБрдХреНрд░рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд▓рдЧрднрдЧ рдЙрд╕реА рд╢рд┐рд░рд╛ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рд▓реЗрдХрд┐рди рдЫрд▓рдиреА рдЕрднреА рднреА рд╕рднреА рдирдВрдмрд░реЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрдд рд╣реЛрддреА рд╣реИ, рдкрд░реАрдХреНрд╖рдгрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЙрдирдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реА рд╣реИред рдЗрд╕рдХрд╛ рдПрдХрдорд╛рддреНрд░ "рд▓рд╛рдн" рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдордзреНрдпрд╡рд░реНрддреА рдЧрдгрдирд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдореЗрдВ рд╕реНрдореГрддрд┐ рдХреЛ рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рд╢рд╛рдпрдж, рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдердо рджреНрд╡рд╛рд░рд╛ рд╕рднреА рдкрд┐рдЫрд▓реЗ рдЕрдкрд░рд╛рдзреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдирдВрдмрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред