csppass
连续 00 XP登录 / 注册
202517判断题初等数论普及/提高

程序(一):删去 gcd(i,k)==1 是否影响结果

题目

阅读下面的程序,回答问题。 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); } 判断题:将 if 判断中的 && gcd(i,k)==1 删去不会影响程序运行结果。( 填 √ 或 × )

考点拆解
gcd 求最大公约数的递归写法(辗转相除法)
三重循环枚举组合并逐一判断条件
易错提醒
阅读程序题要按变量变化顺序手推,不要跳步
选择题要检查单位、边界和题目中的否定词