[原贴:
http://acm.tongji.edu.cn/people/ps/showproblem.php?problem_id=1003&contest_id=6]
------------------------------------
long int Num,i=0,j,cout,cout1,Min;
std::cin>>Num;
cout=cout1=0;//约数个数
Min=Num;//符号条件的最小的那个数
for(i=Num;i>0;i--)
{
cout1=0;
for(j=1;j<=i;j++)//统计i的约数个数
{
if(i%j==0)
cout1++;
}
if(cout1>=cout)
{
cout=cout1;
Min=i;
}
}
Problem
话说星矢、紫龙、冰河、阿瞬为了救活雅典娜,必须勇闯黄金十二宫。
本题包含多组数据.
对于每组数据输出一行,
10
Sample Output
6
第四个他们来到巨蟹宫,身为巨蟹座黄金圣斗士的迪马斯是个杀人狂,在巨蟹宫有很多尸体。都是他杀死的人。现在紫龙为了让星矢先走,于是一个人留下来和迪马斯单挑。(冰河和阿瞬还在双子宫……)不过他想知道迪马斯一生中杀了多少人。
已知迪马斯杀了n个人,1<=n<=k<=2*109,n这个数字很特别,是在不大于k的数字中约数最多但值最小的数字。比如k=10,约数最多的有6,8,10。都有4个约数,不过n取最小的6。紫龙为了给那些无辜死去的人报仇,决定痛打迪马斯n拳。
最终,紫龙使出绝招庐山升龙霸,干掉了迪马斯。他的眼睛也在冥界入口,被雅典娜治好。
Input
第1行,为k(1<=k<=2*109)
Output
为整数n,表示迪马斯一生中杀了多少人。
Sample Input
------------------------------------
long int Num,i=0,j,cout,cout1,Min;
std::cin>>Num;
cout=cout1=0;//约数个数
Min=Num;//符号条件的最小的那个数
for(i=Num;i>0;i--)
{
cout1=0;
for(j=1;j<=i;j++)//统计i的约数个数
{
if(i%j==0)
cout1++;
}
if(cout1>=cout)
{
cout=cout1;
Min=i;
}
}