Написать наибольшим количеством способов число 2019 как сумму квадратов 3 х простых чисел

(Ответ)

$7^2+11^2+43^2=2019$
$7^2+17^2+41^2=2019$
$11^2+23^2+37^2=2019$
$13^2+13^2+41^2=2019$
$17^2+19^2+37^2=2019$
$23^2+23^2+31^2=2019$
Тупой код на PARI/GP

Код:

n=2019;forprime(p1=1,sqrtint(n),forprime(p2=p1,sqrtint(n-p1^2),forprime(p3=p2,sqrtint(n-p1^2-p2^2),if(p1^2+p2^2+p3^2==n,print(«$»,p1,»^2+»,p2,»^2+»,p3,»^2=»,n,»$»)))))

Вообще прикольная штучка: суммой трех квадратов простых чисел в нашем веке представимы только годы $2019,2022,2027,2043,2046,2051,2067,2091$ и чемпионы по количеству представлений — годы $2019$ и $2091$ (по $6$ представлений).

Другие темы раздела
Java SE Заменить все контейнеры на ArrayList, и переписать программу таким образом, чтобы она успешно с ним работала
package ua.lviv.lgs;

import java.time.Month;
import java.util.Scanner;

public class Task_2 {

static class Season {
https://www.cyberforum.ru/ java-j2se/ thread2382524.html

Java SE Нужно вывести дату из текстового файла и узнать из какого промежутка она
переменная «time» задана в файле (input.txt), как строковое значение. Нужно вывести эту дату и сравнить с промежутками, затем вывести в файл (output.txt).

Scanner sc;

Java SE Про полиморфизм и возможно наследование
У Кея Хорстманна написанно:

5.1.6. Представление о вызовах методов
Важно понять, каким образом вызов метода применяется к объекту. Допустим, де-
лается вызов х . f {arg s) и неявный параметр х…
https://www.cyberforum.ru/ java-j2se/ thread2382358.html

Java SE Изменение объекта
https://www.cyberforum.ru/ java-j2se/ thread2382329.html
Доброго времени суток!
Подскажите пожалуйста, почему выводит «2», а не «3» ?
package com.company;

class Main {

private String name;

Java SE Как вывести иерархию наследования классов(и объектов)?
По идее в java нет множественного наследования(исключая интерфейсы), значит можно как-то вывести всю иерархию объектов до Object?
Во время исполнения программа «знает» не только иерархию классов, но…
Java SE Нужно добавить в алгоритм расчета гипотенузы некоторые нюансы
Помогите добавить некоторые задачи, буду очень признателен если напишите с объяснением , заранее спасибо!

public class Hypotenuse {

static double a =10.0, b=4.0, c;
public static double…
https://www.cyberforum.ru/ java-j2se/ thread2382232.html

Java SE Объясните почему код выполняется именно так (private)
Добрый день коллеги! Всех с наступающим! Есть вот такой кусок кода :

public class Solution {
private String name;

Solution(String name) {
this.name = name;
}


https://www.cyberforum.ru/ java-j2se/ thread2382148.html

Не подскажете в чем ошибка ? The method deepToString(Task_2.Car[][]) is undefined for the type Task_2.Car Java SE
package ua.lviv.lgs;

import java.util.Arrays;
import java.util.Collections;
import java.util.Random;

public class Task_2 {

class Car {

Java SE Проверка остались ли кириллические символы
https://www.cyberforum.ru/ java-j2se/ thread2381703.html
Всем хай) я написал конвертер который конвертирует кириллицу в латиницу. Я написал функцию которая проверяет остались ли кириллические символы, но почему то код не работает, Помогите написать…
Java SE Gson и Appendable внутри
Здравствуйте!
Использую для сериализации GSON, значит если просто так toJson сделать, то там создаётся в кишочках StringWriter с дефолтным размером StringBuffer-а внутри на 16
Замеряю на 100тысячах…

https://www.cyberforum.ru/ java-j2se/ thread2381600.html
Проверка символов входящего сообщения на принадлежность алфавиту Java SE
Нужен код проверки символов входящего сообщения на принадлежность алфавита. На Java
Java SE Как использовать методы fill() и sort()
Здравствуйте, у меня возникла проблема. Сейчас изучаю Arrays и не знаю как для массива использовать методы fill() и sort(). Помогите, потому что не знаю где искать уже

Random rand = new…
https://www.cyberforum.ru/ java-j2se/ thread2381394.html

Год уже успел пробежать целый месяц, а задачки-2019 всё ещё попадаются неосвоенные. Встречаются даже очень вполне нетривиальные, приходится поскрепеть мозгами. Иногда они даже удивляют неожиданными арифметическими открытиями, где вроде бы уже ничего неизведанного не должно было остаться. Но такие усложнения будут в самом конце. В начале будут задачки попроще. Ответы (кому интересно) будут опубликованы через три дня под катом. Или же пытайтесь самостоятельно и оставляйте ваши решения в комментариях. Итак, от простого к более сложному:

Задачка 1. Делится ли 10^2019 + 1 на 10^19 — 1 нацело, то есть без остатка?

Задачка 2. На сетке 2018×2019 отрезали по 1 клеточке в левом верхнем и правом нижнем углах. Можно ли замостить полученный лист доминошками 2×1?
Решили? Теперь тот же вопрос про сетку 2019×2019 и также про 2018×2018.

Задачка 3. Найти все целые решения уравнения: х2 + 2019 = y2

Задачка 4. Делится ли нацело на 9 вот такое число: 12345678910111213…201720182019

Задачка 5. Доказать, что уравнение x^2 + (2^2018)*x + 2^2019 = 0 не имеет целых решений.

Задачка 6. Может ли число, сумма всех цифр которого равна 2019, быть квадратом целого числа. Например, 11 в квадрате есть 121, сумма его цифр равна 4. То есть, для числа 4 решение есть. Существует ли оно для 2019?

Задачка 7. На большой доске мелким почерком написано число, равное 8^2019. У этого числа вычисляется сумма цифр, у полученного числа вычисляется опять сумма цифр и т.д. до тех пор пока не получится одна цифра. Что это за цифра?

Задачка 8. Найти без калькулятора (счёты можно) остаток от деления: 2^2019 / 2019


А вот и решения:

Задачка 1. Делится ли 10^2019 + 1 на 10^19 — 1 нацело, то есть без остатка?

10^19 – 1 есть 100…000 – 1 = 999…999 , оно состоит из 18-ти девяток и делится на девять.
10^2019 + 1 является вот таким числом: 100…0001 , сумма всех его цифр равна двум и на девять оно делиться не может (критерий делимости числа на 3 и 9: сумма всех цифр числа должно делиться на 3 или на 9).

То есть, деление нацело невозможно.

Задачка 2. На сетке 2018×2019 отрезали по 1 клеточке в левом верхнем и правом нижнем углах. Можно ли замостить полученный лист доминошками 2×1? Теперь тот же вопрос про сетку 2019×2019 и также про 2018×2018.

2018×2019 решается очевидно. Сначала кладём доминошки на две крайние 2019-полосы, где отрезано по одной клетке, то есть осталось 2018 клеток. Остаётся сетка размером 2018×2016, которую можно замостить в любом направлении параллельными доминошками. Ответ «можно».

2019×2019 ответ «нельзя», поскольку после отрезания остаётся нечётное количество клеток.

2018×2018 чуть сложнее и ответ тоже «нельзя». Доказательство простое. Нужно закрасить все клетки поочерёдно в чёрный и белый цвет, как на шахматной доске. Поскольку каждая доминошка закрывает один чёрный и одну белую клетку, то любое покрытие сетки доминошками закрывает одинаковое количество клеток. Но противоположные клетки на сетке имеют одинаковые цвета, то есть на сетке осталось неодинаковое число чёрных и белых клеток. Ответ: невозможно.

Задачка 3. Найти все целые решения уравнения: х^2 + 2019 = y^2

Решение уравнения сводится к следующему:

2019 = y^2 – x^2 = (y+x) * (y-x)

2019 раскладывается на следующие натуральные (целые положительные) множители:

2019 = 1 * 3 * 673

Отсюда две системы уравнений:

y + x = { 1, 3, 673, 2019 }
y – x = { 2019, 673, 3, 1 }

У которых 2 решения в натуральных числах: { x, y } = { 1009, 1010 }, { 335, 338 }. Поскольку отрицательные значения тоже подходят, то всего получается 8 пар решений.

Задачка 4. Делится ли нацело на 9 вот такое число: 12345678910111213…201720182019

Очень просто. Надо подсчитать сумму всех цифр в числе и проверить результат на критерий делимости на 9. Если сумма цифр делится на 9, то и исходное число тоже делится на девятку. У задачки есть несколько несложных решений. Например, поскольку мы проверяем делимость на 9, то цифры можно складывать группами: у ‘abcd’ результат проверки по ‘a+b+c+d’ будет совпадать с ‘ab+cd’.

abcd = 1000*a + 100*b + 10*c + d = (a+b+c+d) + 999*a + 99*b + 9*c

Девятки сокращаются при делении на 9 – и всё. Таким образом, надо проверить делимость на 9 арифметической прогрессии 1,2,…,2019. Она равна:

2019*(2019+1)/2 = 2019*1010 = 2039190 (или 3*673*2*5*101)

На 9 никак не делится.

Второй вариант решения: разбить исходное очень длинное число на группы по 9:

123456789
101112…18
192021…27

Первая группа делится на 9, поскольку сумма её цифр равна 45. Каждая последующая группа получается из предыдущей прибавлением к каждому элементу группы девятки, то есть, они все тоже делятся на 9. В числе 123…20182019 всего 224 группы. Остаётся группа из трёх последних элементов: 201720182019. Сумма цифр на 9 не делится. Всё.

Задачка 5. Доказать, что уравнение x^2 + (2^2018)*x + 2^2019 = 0 не имеет целых решений.

Исходное уравнение трансформируется следующим образом:

x^2 + (2^2018)*x + 2^2019 = 0 // исходное
x^2 + 2*(2^2017)*x + (2^2017)^2 — (2^2017)^2 + 2^2019 = 0 // преобразуется к форме ‘x^2 + 2*x*a + a^2 = b’
x^2 + 2*(2^2017)*x + (2^2017)^2 = 2^4034 — 2^2019
(x + 2^2017)^2 = 2^2019 * (2^2015 — 1) // что есть ‘(x + a)^2 = b’

Теперь даже невооружённым глазом видно, что никаких целых корней тут быть не может.

Есле же невооружённым не видно, то решение уравнения получается вот такое:

x = √ (2^2019 * (2^2015 — 1)) – 2^2017

Квадратный конень из ‘2^2019 * (2^2015 – 1)’ никак не может быть целым числом, поскольку под корнем двойка в нечётной степени.

Задачка 6. Может ли число, сумма всех цифр которого равна 2019, быть квадратом целого числа. Например, 11 в квадрате есть 121, сумма его цифр равна 4. То есть, для числа 4 решение есть. Существует ли оно для 2019?

Тоже очень просто. Предположим, что есть некое число ‘x^2’ сумма цифр которого равна 2019. Но по критерию делимости на 3 и на 9 получается, что ‘x^2’ делится на 3 и не делится на 9 (поскольку 2019 делится на 3, но не на 9). То есть, в разложении ‘x’ на множители есть тройка, но тогда в разложении ‘x^2’ должна быть девятка. Противоречие. То есть, такого числа не существует.

Кстати, это верно для любой целой степени больше 1. То есть, не существует целых чисел, которые при возведении в степень (квадрат, куб и так далее) дают число, сумма цифр которого равна 2019.

Задачка 7. На доске написано число, равное 8^2019. У этого числа вычисляется сумма цифр, у полученного числа вычисляется опять сумма цифр и т.д. до тех пор пока не получится одна цифра. Что это за цифра?

Эта цифра восемь. Вот почему: любое число записывается как сумма его десятичных разрядов, умноженных на степени десятки. Например, ‘123’ записывается вот так: 1*10^3 + 2*10^2 + 3. Сумма всех цифр числа получается «удалением лишних десяток», то есть:

123 = 1 + 2 + 3 + ( 1*999 + 2*99 )

Но это же просто деление с остатком на 9. То есть, 8^2019 надо разделить с остатком на девятку. Для этого посмотрим на последовательность 8^x по модулю 9:

8^1 = 8 (mod 9)
8^2 = 64 = 1 (mod 9)
8^3 = 8 * 8^2 (mod 9) = 8*1 (mod 9) = 8 (mod 9)
8^4 = 8 * 8^3 (mod 9) = 8*8 (mod 9) = 1 (mod 9)

То есть, 8^x поочерёдно принимает значения 1 и 8. Нечётные – восмёрки. 8^2019 даёт восьмёрку.

Задачка 8. Найти без калькулятора (счёты можно) остаток от деления: 2^2019 / 2019

Здесь сложнее и требуется некоторое количество несложных вычислений.

1) Последовательность 2^x (mod 2019) когда-то зациклится. То есть, найдутся ‘a’ и ‘b’ такие, что:

2^a = 2^b (mod 2019).

То есть,

2^b* (2^c — 1) = 0 (mod 2019)

// понятно, что ‘a>b’ и ‘c=a-b’. Они взаимопростые, посему существует

2^c = 1 (mod 2019).

Теперь надо его найти.

2) Чтобы найти эту самую ‘це’ надо достать счёты, поскольку придётся попотеть арифметически. Поехали, считаем остатки ‘2^x’ при делении на 2019:

1 2 4 8 16 32 64 128 256 512 1024 = 2^10 (mod 2019)
— первый десяток даже считать не надо, это нужно помнить наизусть.

29 58 116 232 464 928 1856 1693 1367 715 = 2^20 (mod 2019)
— второй десяток считается тоже не очень сложно, предыдущее надо просто умножить на 2 и вычесть 2019, если оно больше.

1430 841 1681 1345 671 1342 665 1330 641 1282 (2^30)
— тут уже менее приятные числа для вычислений, но тоже ничего этакого.

545 1090 161 322 644 1288 557 1114 209 418 (2^40)
836 1672 1325 631 1262 505 1010 1 (2^48)
— баммм! Вот оно! Длина цикла = 48.

248 = 1 (mod 2019)

Сколько там циклов в 2019 умещается?

2019 = 48*42 + 3

То есть,
22019 = 2(42*48 + 3) = (142) * (23) = 8 (mod 2019)

Всё. Ответ: тоже восемь.

3) Можно и меньшим количеством операций, если не боитесь умножать и делить многозначные числа. Поскольку мы знаем степени двойки наизусть, то можно искать цикл с шагом 10. То есть, считать не все остатки от деления степени двойки на 2019, а 2^20, 2^30, 2^40, 2^50 — каждый раз умножая предыдущий остаток на 1024 и вычисляя остаток от деления на 2019. За 4 умножения и 4 деления наткнёмся на остаток, равный степени двойки. Всё.
—8<—

По результатам математического марафона выходного дня отличились следующие участники: sir_derryk (первое место, молодца!) и Яна Барсукова (второе место). За прочие подвиги и попытки участия :) — mama_gremlina и olly_ru.

Победители награждаются корпоративно-зелёными призами из магазина Labshop, куда, кстати, недавно поступило много нового и прикольного, например вот такие «мидори-кумные» кигурумии домашние тапочки.

Первое(ые) место(а): толстовка + защита KIS. Поощрительные призы: термосы.

Популярные вопросы

  • .(Смешали 100 г 10%-го и 50%-го раствора гидроксид…28.02.2019 07:20
  • Решить уравнения log2log3x в квадрате=2…28.02.2019 16:30
  • Какие знаки у координат точки, если она принадлежи…01.03.2019 05:10
  • Нужно сочинение по темме «что дружба обозначает дл…01.03.2019 08:10
  • Массовая доля азотной кислоты в растворе, полученн…02.03.2019 04:40
  • Катер проплыл 33 км вниз по течению реки, а затем…02.03.2019 21:50
  • Найти массу воды, поднявшейся по капиллярной трубк…03.03.2019 16:30
  • Впрямоугольной трапеции основания равны 6 см и 9 с…07.03.2019 17:50
  • Найти сумму чётных чисел не превосходящих 40?…07.03.2019 20:10
  • На тему «лес в жизни человека» 7 клас….08.03.2019 06:30

You are looking for solutions of $x^2 + y^2 + z^2 = m$ with no conditions for x, y, z, especially on the order. Instead solve for x < y < z and multiply the count by six (since x, y, z could be ordered in six ways), then solve $x^2 + 2y^2 = m$ for x ≠ y and multiply the count by three (you have solutions (x, y, y), (y, x, y) and (y, y, x), and then solve $3x^2 = m$ (solution x, x, x). I assume you allow x = 0, otherwise a slight change is needed. To find the count for all m, 0 ≤ m ≤ M = $10^6$:

Initialise an array with indices 0 to M to zeroes. 
Loop for x = 0, 1, 2, ... as long as 3x^2 ≤ M
    Loop for y = x + 1, x + 2, ... as long as x^2 + 2y^2 ≤ M
        Loop for z = y + 1, y + 2, ... as long as x^2 + y^2 + z^2 ≤ M
            Increase the count for x^2 + y^2 + z^2 by 6.
Loop for x = 0, 1, 2, ... as long as x^2 ≤ M
    Loop for y = 0, 1, 2, ... as long as x^2 + 2y^2 ≤ M
        Increase the count for x^2 + 2y^2 by 3 if x ≠ y, by 1 if x = y.

This is of course no help if you want the count for one single m (although it is faster than your original method by some constant factor, but it won’t be anywhere as fast as something more clever), but I think it will be hard to beat if you want to find the count for many m. Quite similar to the sieve of Eratosthenes, which is very good at finding all primes in a large range.

Runtime will be $Theta (M^{1.5})$ to find the count for all 0 ≤ m ≤ M. You can adapt this to find the counts for M — N ≤ m ≤ M, and that should work in $Theta (M · max (1, N / M^{1/2}))$ which degenerates to $Theta(M)$ for N = 0, which finds just one count.

It also finds the solutions for $M — M^{1/2} ≤ m ≤ M$ in about the same as for a single m.

PS. To find the count for a single solution, it is better to look for solutions with x > y > z: Choose $m^{1/2} ≥ x ≥ (m/3)^{1/2}$ (a smaller x cannot be the largest number in a solution). Then we need 0 ≤ y < x, and 0 ≤ z < y, so $x^2 + y^2 + 0^2 ≤ m ≤ x^2 + y^2 + (y-1)^2$. Let $m’ = m — x^2$, then $y^2 ≤ m’$ and $y^2 + (y-1)^2 ≥ m’$, so $(m’ / 2)^{1/2} ≤ y ≤ min (x, m’^{1/2})$. This minimises the number of pairs (x, y) to examine to about M / 18.

PS. The algorithm runs at full speed if for every pair (x, y) there are many values z. If you look for solutions in [a, b] then this is efficient as long as (b — a) is large compared to $b^{1/2}$, so you can divide the interval [a, b] in as many subintervals as you have processors, as long as the width of each subinterval is still much larger than $b^{1/2}$. If you modify the algorithm so that x > y > z, then you will have fewer pairs (x, y) and therefore more z values for each pair (x, y), so the overhead will be less.

PS. You loop over x, and for each x you want to count the pairs (y, z) such that $y^2+z^2=m-x^2$. Consider that a^2 modulo 16 is always one of 0, 1, 4 or 9. So $y^2+z^2$ modulo 16 is one of 0, 1, 2, 4, 5, 8, 9, 10, 13. For seven possible values of $m-x%2$ modulo 16 we don’t need to do anything. For the others we can significantly reduce the number of values y to examine. And we can consider other modulo values, significantly reducing the amount of work needed.

You are looking for solutions of $x^2 + y^2 + z^2 = m$ with no conditions for x, y, z, especially on the order. Instead solve for x < y < z and multiply the count by six (since x, y, z could be ordered in six ways), then solve $x^2 + 2y^2 = m$ for x ≠ y and multiply the count by three (you have solutions (x, y, y), (y, x, y) and (y, y, x), and then solve $3x^2 = m$ (solution x, x, x). I assume you allow x = 0, otherwise a slight change is needed. To find the count for all m, 0 ≤ m ≤ M = $10^6$:

Initialise an array with indices 0 to M to zeroes. 
Loop for x = 0, 1, 2, ... as long as 3x^2 ≤ M
    Loop for y = x + 1, x + 2, ... as long as x^2 + 2y^2 ≤ M
        Loop for z = y + 1, y + 2, ... as long as x^2 + y^2 + z^2 ≤ M
            Increase the count for x^2 + y^2 + z^2 by 6.
Loop for x = 0, 1, 2, ... as long as x^2 ≤ M
    Loop for y = 0, 1, 2, ... as long as x^2 + 2y^2 ≤ M
        Increase the count for x^2 + 2y^2 by 3 if x ≠ y, by 1 if x = y.

This is of course no help if you want the count for one single m (although it is faster than your original method by some constant factor, but it won’t be anywhere as fast as something more clever), but I think it will be hard to beat if you want to find the count for many m. Quite similar to the sieve of Eratosthenes, which is very good at finding all primes in a large range.

Runtime will be $Theta (M^{1.5})$ to find the count for all 0 ≤ m ≤ M. You can adapt this to find the counts for M — N ≤ m ≤ M, and that should work in $Theta (M · max (1, N / M^{1/2}))$ which degenerates to $Theta(M)$ for N = 0, which finds just one count.

It also finds the solutions for $M — M^{1/2} ≤ m ≤ M$ in about the same as for a single m.

PS. To find the count for a single solution, it is better to look for solutions with x > y > z: Choose $m^{1/2} ≥ x ≥ (m/3)^{1/2}$ (a smaller x cannot be the largest number in a solution). Then we need 0 ≤ y < x, and 0 ≤ z < y, so $x^2 + y^2 + 0^2 ≤ m ≤ x^2 + y^2 + (y-1)^2$. Let $m’ = m — x^2$, then $y^2 ≤ m’$ and $y^2 + (y-1)^2 ≥ m’$, so $(m’ / 2)^{1/2} ≤ y ≤ min (x, m’^{1/2})$. This minimises the number of pairs (x, y) to examine to about M / 18.

PS. The algorithm runs at full speed if for every pair (x, y) there are many values z. If you look for solutions in [a, b] then this is efficient as long as (b — a) is large compared to $b^{1/2}$, so you can divide the interval [a, b] in as many subintervals as you have processors, as long as the width of each subinterval is still much larger than $b^{1/2}$. If you modify the algorithm so that x > y > z, then you will have fewer pairs (x, y) and therefore more z values for each pair (x, y), so the overhead will be less.

PS. You loop over x, and for each x you want to count the pairs (y, z) such that $y^2+z^2=m-x^2$. Consider that a^2 modulo 16 is always one of 0, 1, 4 or 9. So $y^2+z^2$ modulo 16 is one of 0, 1, 2, 4, 5, 8, 9, 10, 13. For seven possible values of $m-x%2$ modulo 16 we don’t need to do anything. For the others we can significantly reduce the number of values y to examine. And we can consider other modulo values, significantly reducing the amount of work needed.

Понравилась статья? Поделить с друзьями:
  • Написать на доске как пишется
  • Написать на авито администратору как сообщение
  • Написать мышкой как ручкой
  • Написать письмо эдуарду петрову честный детектив как
  • Написать мужчине своими словами как он мне нравится