Показать сообщение отдельно
  #4  
Старый 17.02.2010, 22:50
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

Моя программа вычисляет такие числа по формуле:
y = x * (z - 2) / 199

( смотри выкладки )

И у нее ограничение размерностью Int64 где самое большое число 9223372036854775807

И она учитывает левые нули. Для нахождения чисел большей велицины надо применить длинную арифметику.

По существу
x - это NUMGAME.IN

для каждого x надо перебирая z= 10, 100, ... т.е. 10^n
проверять чтобы x * (z - 2) делилось на 199 без остатка ( если верны мои математические выкладки )
тогда и получишь недостающие цифры ( y )

например для твоего числа x=06 ; z=10^97; ( в степени 97 )
06 * ( 10^97 - 2 ) mod 199 = 0 ( должно )
y= 06 * ( 10^97 - 2 ) div 199 = 03015075376884422110552763819095477386934673366834 17085427135678391959798994974874371859296482412

количество нулей с лева можно определить взяв логарифм от z ( т.е. зная степень 10 )

Если у тебя есть функции для работы с такими числами ( например в виде строк ) - проверь на этом числе.
Если таких формул нет попробуй использовать вот это:
Работа с очень большими числами

И необязательно полностью цитировать пост - неудобно читать
Ответить с цитированием