作业1:输入正整数mn,求其最大公约数和最小公倍数。
#include <stdio.h>
int main()
{
int m,n;
int x=1;
int y=0;
int i;
printf("请输入两个正整数m和n。\n");
scanf("%d%d",&m,&n);
for(i=1;i<=m&& i<=n;i++){
if (m % i == 0 && n % i == 0){
x = i; // i 即为m,n 的最小公约数
}
}
printf("m和n的最小公约数为%d。\n",i);
y = (m * n)/ i ; // 计算最大公倍数公式,两数相乘除以最小公约数
printf("m和n的最大公约数为%d。\n",i);
return 0;
}
作业2:水仙花数
水仙花数定义:所有三位数中,该数的各个位的立方和等于该数,则称为水仙花数,请找出0~999之间的所有水仙花数。
涉及取位数操作: 个位 0~10的数字对10取余数
十位:对10求整对10取余
百位: 对100求整
#include <stdio.h>
int main()
{
int i=0; // 定义循环体变量
int ge, shi, bai;
for(i= 0; i<=999; i++){
bai = i/100;
shi = (i/10)%10;
ge = i%10;
if(ge*ge*ge + shi*shi*shi+ bai*bai*bai == i){
printf("找到了一个水仙花数%d\n", i);
}
}
return 0;
}