// SPDX-License-Identifier: MIT pragma solidity ^0.8; contract LargeDivRem { function rem_2(int n) public pure returns (int q) { assembly { q := smod(n, 2) } } function div_2(int n) public pure returns (int q) { assembly { q := sdiv(n, 2) } } function rem_7(int n) public pure returns (int q) { assembly { q := smod(n, 7) } } function div_7(int n) public pure returns (int q) { assembly { q := sdiv(n, 2) } } function rem_k(int n, int k) public pure returns (int q) { assembly { q := smod(n, k) } } function div_k(int n, int k) public pure returns (int q) { assembly { q := sdiv(n, k) } } }