题目描述
正整数x 的约数是能整除x 的正整数。正整数x的约数个数记为div(x)。例如,1,2,5,10 都是正整数10的约数,且div(10)=4。设a 和b是2 个正整数,a≤b,找出a 和b之间约数个数最多的数x。对于给定的2 个正整数a≤b,计算a 和b之间约数个数最多的数。
输入
输入数据的第1行有2个正整数a和 b,a≤1000000000,b≤1000000000。
输出
若找到的a 和b之间约数个数最多的数是x,将div(x)输出。
样例输入
1 36
样例输出
9
参考代码
#include<stdio.h>
int main()
{
int a,b;
//è¾å
¥çaåb
int num,maxnum=2;
//maxnum表示x约æ°ç个æ°,num表示计ç®è¿ç¨ä¸æ个æ¯ç约æ°ä¸ªæ°
int i,j;
scanf("%d%d",&a,&b);
//input a and b
for (i=b;i>=a;i--)
{
//ä»å¤§å°å°éå
if(i%2==0)
{
//约æ°æå¤çä¸å®æ¯å¶æ°
num=2;
//1åiæ¯åºæç约æ°ï¼æ以numèµ·å§å¼ä¸º2
for (j=2;j<=i/2;j++)
{
//j代表ä¸ä¸ªçº¦æ°
if(i%j==0)
{
if(j==i/j)
{
//ä¾å¦ 36=6*6çæ
åµ
num++;
} else if(j<i/j)
{
num+=2;
} else
{
break;
}
}
}
if(num>maxnum)
maxnum=num;
}
}
printf("%d",maxnum);
return 0;
}
解析
暂无