1 //求最大公约数和最小公倍数 2 //从文件输入数据,将结果输出到另外一个文件 3 //2016年重大考研C语言机试题目 4 #include<stdio.h> 5 #include<stdlib.h> 6 #include<string.h> 7 8 //求最大公约数 9 int gcd(int a, int b) 10 { 11 int i; 12 for(i = a; i > 0; i--) 13 if(a % i == 0 && b % i == 0) 14 break; 15 return i; 16 } 17 18 //求最小公倍数 19 int lcm(int a, int b) 20 { 21 int i; 22 for(i = a; ; i++) 23 if(i % a == 0 && i % b == 0) 24 break; 25 return i; 26 } 27 28 int main() 29 { 30 FILE *fp_read, *fp_write; 31 int a, b; 32 fopen_s(&fp_read, "D:\\text.in", "r"); 33 fopen_s(&fp_write, "D:\\text.out", "w"); 34 35 while(!feof(fp_read)) 36 { 37 fscanf(fp_read, "%d %d", &a, &b); 38 fprintf(fp_write, "%d 和 %d的最大公约数为%d\n", a, b, gcd(a,b)); 39 fprintf(fp_write, "%d 和 %d的最小公倍数为%d\n", a, b, lcm(a,b)); 40 fputc('\n', fp_write); 41 } 42 43 fclose(fp_read); 44 fclose(fp_write); 45 46 system("pause"); 47 return 0; 48 }