我是一名试图闯入 C 语言的 Python 程序员。有人能帮我理解这种意想不到的行为吗?
#include <stdio.h>
#include <stdlib.h>
int modulo(int a, int b) {
return a - b * (a / b);
}
int main(int argc, char **argv) {
printf("The largest possible LLu is %llu.\n", -1LLu);
unsigned long long x = atoi(argv[1]);
unsigned long long i;
printf("Finding the largest prime number less than %llu.\n", x);
for(i = 2; i < (x / 2) + 1; i ++) {
if(modulo(x, i) == 0) {
i = 2;
x--;
}
}
printf("Found %d.\n", (int)x);
return(0);
}
然后在终端上:
./编 111111111189
最大可能的 LLu 是 18446744073709551615。
查找小于 18446744073151513109 的最大素数。
然而,对于一些非常大的数字(仍然小于最大 LLu)和较小的数字,该程序按预期工作。
我很困惑!
非常感谢!