2025 年第 20 题阅读程序初等数论普及/提高
程序(一):输入为 8 时的输出
题目
阅读下面的程序,回答问题。 inline int gcd(int a, int b){ if (b == 0) return a; return gcd(b, a % b); } int main(){ int n; scanf("%d", &n); int ans = 0; for (int i = 1; i <= n; ++i) for (int j = i + 1; j <= n; ++j) for (int k = j + 1; k <= n; ++k) if (gcd(i, j) == 1 && gcd(j, k) == 1 && gcd(i, k) == 1) ++ans; printf("%d\n", ans); } 当输入为 8 的时候,输出为( )
考点拆解
gcd 求最大公约数的递归写法(辗转相除法)
三重循环枚举组合并逐一判断条件
易错提醒
阅读程序题要按变量变化顺序手推,不要跳步
选择题要检查单位、边界和题目中的否定词