Похоже на Project Euler.
.NET 4.0 имеет System.Numerics.BigInteger, или вы можете найти довольно приятную реализацию здесь:
C # BigInteger Class
Edit: treed: (
Я добавлю - версия на CodeProject имеет дополнительные функции, такие как квадратный корень целого числа, проверка простоты, генерация последовательности Лукаса. Кроме того, у вас нет прямого доступа к буферу в реализации .NET, которая была раздражает из-за пары вещей, которые я пробовал.
До тех пор, пока вы не сможете использовать System.Numerics.BigInteger
, вы застрянете при использовании сторонней реализации, например BigInteger
в Code Project ].
Вам нужна реализация BigNums. Это целые числа, которые динамически выделяют память, чтобы они могли хранить свое значение.
Фактически версия была вырезана из BCL .
Библиотека J # имеет реализацию java.math. BigInteger , который можно использовать на любом языке.
В качестве альтернативы , если точность / точность не является проблемой (вы заботитесь только о порядке величины), вы можете просто использовать 64-битные числа с плавающей запятой.
decimal будет обрабатывать от 0 до +/- 79,228,162,514,264,337,593,543,950,335 без десятичной точки (шкала нуля)
Совет: используйте массив для хранения цифр номера. При осмотре можно сказать, что результат не будет содержать более 200 цифр.