首页 > 代码库 > 经典的C程序

经典的C程序

程序一:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数

 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         do11         {12             if (a%i == 0)13             {14                 b[k] = i; k++;15                 a = a / i;16             }17             else18                 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         else25             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>x10     if (x>y)11     {12         t = y; y = x; x = t;13     }14     //碾转相除获取最大公约数15     do16     {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 }

 

经典的C程序