程序一:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
1 #include<stdio.h> 2 void main(){ 3 int a, b, c, i; 4 for (i = 100; i <= 999; i++){ 5 //获取百位数 6 a = i / 100; 7 //获取十位数 8 b = i / 10 % 10; 9 c = i % 10; 10 if ((a*a*a + b*b*b + c*c*c) == i){ 11 printf("%d ",i); 12 } 13 } 14 }
程序二:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
1 #include<stdio.h> 2 void main() 3 { 4 int a, k = 0, i; 5 char b[100]; 6 scanf_s("%d", &a); 7 printf("%d=", a); 8 for (i = 2; i <= a; i++) 9 { 10 do 11 { 12 if (a%i == 0) 13 { 14 b[k] = i; k++; 15 a = a / i; 16 } 17 else 18 break; 19 } while (a >= i); 20 } 21 for (i = 0; i<2 * k - 1; i++) 22 if (i % 2 == 0) 23 printf("%d", b[i / 2]); 24 else 25 printf("*"); 26 }
程序三:输入两个正整数m和n,求其最大公约数和最小公倍数。
1 #include<stdio.h> 2 void main() 3 { 4 int a, b, x, y, r, t; 5 scanf_s("%d,%d", &a, &b); 6 printf("%d %d\n", a, b); 7 x = a; 8 y = b; 9 //交换位置 最终结果 y>x 10 if (x>y) 11 { 12 t = y; y = x; x = t; 13 } 14 //碾转相除获取最大公约数 15 do 16 { 17 r = y%x; 18 y = x; 19 x = r; 20 } while (r != 0); 21 printf("%d ", y); 22 //根据两个数的乘积除以其最大公约数就是最小公倍数 23 printf("%d", a*b / y); 24 }
时间: 2024-10-26 21:59:00