Как проверить делимость очень длинного числа в C ++?

Как проверить делимость очень длинного числа в c ++?
я должен проверить, если (3 * N * N + 3 * п-1) делится на 2, 3 и 5 а также п может быть до 10 ^ 10 так длинный длинный int это также сомнительный работать, хотя я пытался сделать это:

unsigned long long int gg4,l;
gg4=(3*n*n+3*n-1);
if(gg4%3==0){
gg4=gg4/3;
}
if(gg4%2==0){
gg4=gg4/2;
}
if(gg4%5==0){
gg4=gg4/2;
}

Но я думаю, что это не будет работать из-за диапазона п, поэтому, пожалуйста, помогите! 🙂

после этого мне тоже нужно делить (3 * N * N + 3 * п-1) по этому фактору, поэтому, пожалуйста, помогите!

1

Решение

Чтобы расширить мой комментарий, есть два случая, когда (3*n*n+3*n-1) % 5 == 0а именно

  • n = 5 * m + 1
  • n = 5 * m + 3

За m целое число

Так что на самом деле вам ничего не нужно вычислять, вы можете работать напрямую с nи даже не рассчитать 3 * n * n + 3 * n - 1 на первом месте.

Просто проверьте:

n % 5 == 1 || n % 5 == 3
3

Другие решения


По вопросам рекламы [email protected]