问555555的约数中最大的三位数是多少?根据约数的定义,对于一个整数N,除去1和它自身外,凡能整除N的数即为N的约数。因此,最简单的方法是用2到N-1之间的所有数去除N,即可求出N的全部约数。本题只要求取约数中最大的三位数,则其取值范围可限制在100到999之间。问555555的约数中最大的三位数是多少?
*问题分析与算法设计
根据约数的定义,对于一个整数N,除去1和它自身外,凡能整除N的数即为N的约数。因此,最简单的方法是用2到N-1之间的所有数去除N,即可求出N的全部约数。本题只要求取约数中最大的三位数,则其取值范围可限制在100到999之间。
*程序说明与注释
#include<stdio.h>
int main()
{
long i;
int j;
printf("Please input number:");
scanf("%ld",&i);
for(j=999;j>=100;j--)
if(i%j==0)
{
printf("The max factor with 3 digits in %ld is:%d,/n",i,j);
break;
}
}
*运行结果
输入:555555
输出:The max factor with 3 digits in 555555 is:777
*我自己的代码
#include<stdio.h>
#include<math.h>
int main(){
int t=555555;
int n=99,m=1000,l=1;
while(l){
if(m>=n){
m-=1;
n=t/m;
}
else break;
l=t%m;
}
printf("%d",m);
return 0;
}
我的更好一点 嘿嘿 其实不是 做判断完全没有什么用……还占用了时间