文章目录
最大公约数,最小公倍数
最大公约数:
最大体现在:最大也只能是两个数中最小的那个数
公约体现在:两个数全都能被某个数整除
还有个公式求其一,就知道另一个了:两个数的乘积等于这两个数的最大公约数
#include <stdio.h>
int main()
{
int x,y;
int tmp = 0;
printf("这是最大公约数,最小公倍数的程序\n");
puts("请输入两个整数");
scanf("%d%d",&x,&y);
tmp = (x<y) ? x : y;
while(1){
if((x%tmp==0) && (y%tmp==0)){
printf("最大公约数是:%d \n",tmp);
printf("最小公倍数是:%d \n",(x*y)/tmp);//由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积。
break;
}
tmp--;
}
puts("继续方法二求最小公倍数,类比上面");
tmp = (x>y)?x:y;
while(1){
if((tmp%x==0) && (tmp%y==0)){
printf("最小公倍数是:%d \n",tmp);
break;
}
tmp++;
}
return 0 ;
}
现象
水仙花数
水仙花数是指一个 3 位数,它的每个数位上的数字的 3次幂之和等于它本身。 例如:1^3 + 5^3+ 3^3 = 153。
#include <stdio.h>
int main()
{
int data,i,j,k;
printf("这是一个求100-999之间的水仙花数的程序\n");
for(data=100;data<=999;data++){
i = data/100%10; //取出百位
j = data/10%10; //取出十位
k = data%10; //取出十位 //单片机中多用到这种算法
if(data == (i*i*i+j*j*j+k*k*k)){
printf("%d ",data);
}
}
return 0;
}
现象
----- 如有错误欢迎大家批评指正!!!