如果计算机使用base 6(senary),他们可以很容易地发现N是否可被2或3整除,并且由于数字和规则(omega和alpha triatives),他们也可以很容易地判断出N是否可被整除5或7。
但是计算机使用base 2(二进制)。因此,他们可以很容易地判断N是否可以被2除,并且由于数字和规则(alpha totative),他们还可以判断N是否可以被3整除。
要确定N是否可以被5整除,它们可以将N转换为16(十六进制),并使用数字和规则(omega totative)来查找N是否可以被5整除。
我不知道......还有其他方法吗?
答案 0 :(得分:0)
它将解决它解决任何其他64位整数的方式。
log2 10 ^ 10~ = 33.219
这意味着这个数字和许多其他数字可由64位int表示。
你可以试试
std::vector<int64_t> primes = {2,3,5,7,11,13,17,19,23,29};
int64_t mynumber = 0x2540BE400;
for (int64_t prime : primes)
{
if (mynumber % prime == 0)
{
std::cout << mynumber << " is divisible by " << prime << std::endl;
}
}
有关%
和/
实施的详细信息,以下文章是一个很好的参考:http://www.diva-portal.org/smash/get/diva2:347845/FULLTEXT01.pdf