Есть масса причин, почему double не подходит для решения этой задачи.
Если будете использовать int, проверяйте на переполнение, пожалуйста.