问555555的约数中最大的三位数是多少?
*问题分析与算法设计
根据约数的定义,对于一个整数N,除去1和它自身外,凡能整除N的数即为N的约数。因此,最简单的方法是用2到N-1之间的所有数去除N,即可求出N的全部约数。本题只要求取约数中最大的三位数,则其取值范围可限制在100到999之间。
/**
* Copyright (c) 2011 Trusted Software and Mobile Computing(TSMC)
* All right reserved.
*
* Created on 2011
*
* http://jarg.javaeye.com/
*
*/
// Contributors: Jarg Yee <yeshaoting@gmail.com>
import static java.lang.System.out;
/*
* TODO 求最大约数
*/
public class SubMultiple
{
/** 整数N */
private static final int N = 555555;
/* TODO for debugging. */
public static void main(String[] args)
{
for(int num=999; num>=100; num--)
{
// 整除情况
if(N%num == 0)
{
out.println("The max factor with 3 digits in " + N + " is:" + num);
break;
}
}
}
}
---------- 运行Java ----------
The max factor with 3 digits in 555555 is:777
输出完成 (耗时 0 秒) - 正常终止