[Архив!] Чистая математика, физика, химия и т.п.: задачки для тренировки мозгов, никак не связанные с торговлей - страница 320

 
Mathemat писал(а) >>
Richie, а сам решишь?

Так я же сам её и придумал :)))

Тогда давай не трёх, а четырёхзначное. И не на 12, а на 128.

 
Вожусь немножко с №226.
Вьехал, что точки лежат не только на окружностях с центром в точке == центру многоугольника,
но и на наборе окружностей "половинного" диаметра прижатых к краям 1976-угольника.
Это легко понять, если представить себе место середин точек всех хорд пересекающих окружность одним из своих концов в фиксированной точке.
Возможно на этих окружностях лежат ещё какие-то "полуточки". (с) Т.е. ответ будет возможно больше чем очевидный минимум (1976).
Думаю дальше.
// Кстати, 1976 == 2*2*2*13*19
// Не знаю поможет ли это делу. Но во внимание принимаю. :)
 
a = 128(b+c+d)/(bcd-128)
Снова если все равные, то 512*a = a*a*a*a, т.е. а = 8. Число 8888, тоже слегка мистическое.
О других решениях не думал. Но произведение любых трех цифр больше 128.
 
MetaDriver писал(а) >>

Тогда давай не трёх, а четырёхзначное. И не на 12, а на 128.


У меня программа есть на бейсике, так, что меня этим не "засыпать" :)))

 
Richie >>:

У меня программа есть на бейсике, так, что меня этим не "засыпать" :)))

Легко. Если число, скажем, 30-значное, замучится Ваш васик считать. Быстрее коллайдер Землю уничтожит.

 

Mathemat, да бросьте вы на счёт коллайдера. Никакой опасности он не представляет. Просто политикам и учёным нужно мани отлить.
Америкосы в своё время пытались "воздух нагреть" при помощи СВЧ - угобили огромное количество денег, сейчас по этой территории журналюги гуляют :)))
-
Кстати, по поводу 128.
Подойдут следующие:
34688
34866
36468
38864
43668
44946
44964
63468
и т.п.
-
Вот сама программка:
-
'Объява
Dim M As Long
Dim N As Long
Dim Koeficient As Long

Private Sub Command1_Click()
Dim MaxChislo As Long
Dim MinChislo As Long
Dim i As Long
Dim strok As String
'Задаём исходные данные
MinChislo = 1
MaxChislo = 100000
Koeficient = 128
For i = MinChislo To MaxChislo
strok = LTrim(RTrim(Str(i)))
If ProizCifr(strok) / SumCifr(strok) = Koeficient Then
Print strok
Else
'Print "Ни фига не найдено"
End If
Next i
End Sub

'РАСЧЁТ СУММЫ
Private Function SumCifr(Stroca As String) As Long
Dim i As Long
Dim Summa As Long
Dim Cifra As Long
For i = 1 To Len(Stroca)
Cifra = Val(Mid(Stroca, i, 1))
Summa = Summa + Cifra
Next i
SumCifr = Summa
End Function

'РАСЧЁТ ПРОИЗВЕДЕНИЯ
Private Function ProizCifr(Stroca As String) As Long
Dim i As Long
Dim Proiz As Long
Dim Cifra As Long
Proiz = 1
For i = 1 To Len(Stroca)
Cifra = Val(Mid(Stroca, i, 1))
Proiz = Proiz * Cifra
Next i
ProizCifr = Proiz
End Function

 
Richie, я понимаю, что с коллайдером перебрали слегка.
34688 - не проходит: сумма равна 29, а произведение на это простое число не делится. Не выходит у Вас что-то каменный цветок... И вообще не подходит ни одно из указанных Вами.
P.S. Ой, у Вас-то пятизначные!
 
Mathemat >>:
О других решениях не думал. Но произведение любых трех цифр больше 128.

Решение единственное.

Программу написать - нет проблем.

Напр, в прицепе скрипт для 4 знаков. выдаёт перебором все решения для произвольного делителя. (кстати скорость приятно удивляет)

Решает вложенными циклами.

А вот интересно: как написать прогу для произвольного количества знаков (задаваемого в параметре).

Какие варианты?

Рекурсия вроде прокатывает, но расходно по стеку. Щас сделаю рекурсию. Ещё идеи есть?

Файлы:
12.mq5  1 kb
 
Mathemat писал(а) >>
Richie, я понимаю, что с коллайдером перебрали слегка.
34688 - не проходит: сумма равна 29, а произведение на это простое число не делится. Не выходит у Вас что-то каменный цветок...
И вообще не подходит ни одно из указанных Вами.


Я сегодня совсем плох, заработался:
-

 
MetaDriver >>:

А вот интересно: как написать прогу для произвольного количества знаков (задаваемого в параметре).

Какие варианты?

Рекурсия вроде прокатывает, но расходно по стеку. Щас сделаю рекурсию. Ещё идеи есть?

Вариантов нет. Для 30 знаков нужно как-то эффективно ограничивать перебор.

Рекурсию, наверно, бесполезно (если число знаков больше 10).

Причина обращения: