D语言版趣味程序:5.求最大数
(说明:原文见http://www.kuqin.com/tiku/c100/,是C语言版。本人改写成D-tango版。与各位D初学者共勉。)
问题
555555的约数中最大的三位数是多少?
问题分析与算法设计
根据约数的定义,对于一个整数N,除去1和它自身外,凡能整除N的数即为N的约数。
因此,最简单的方法是用2到N-1之间的所有数去除N,即可求出N的全部约数。本题
只要求取约数中最大的三位数,则其取值范围可限制在100到999之间。
import tango.io.Stdout, tango.io.Console, tango.util.Convert; import tango.stdc.stdlib; int main() { long i; int j; Stdout("求一个大数的约数中最大的三位数:\n请输入要计算的数(大于等于100):").newline; i = to!(long)(Cin.get());//从控制台输入要求的数 for(j=999;j>=100;j--) { if(i%j==0) { Stdout.formatln("{}最大的三位数约数为:{}",i,j); break; } } system("pause");//程序执行后显示“按任意键继续”,以便观察 return 0; }