2015-08-01 4 views

ответ

4

Он работает правильно. Он не должен быть равен нулю.

Оператор % (modulo) возвращает остаток от деления первого аргумента на второй.

600851475143 % 3 = 2 

Потому что:

600851475143/3 = 200283825047.67 

Он по-прежнему отлично работает на больших количествах, например.

600851475144 % 3 = 0 

Вот docs

+0

oh ... когда я забегаю 600851475143/3, я получаю 200283825047. И вот почему я думал, что это не сработает. Если я скажу float (600851475143/3), я получаю научную нотацию, и я все еще не вижу, есть ли остаток: 2.00283825047e + 11 –

+0

a = float (600851475143/3), даже когда я назначаю переменную в результат. В проводнике переменных он выглядит как если бы не осталось: 200283825047.0 –

+3

Это потому, что разделение между двумя ints в python 2 является целым делением. Хотите проверить? Попробуйте '1/2' Вы получите' 0', а не '0,5' – NightShadeQueen

Смежные вопросы