问题描述:正整数x的约数是能整除x的正整数。正整数x的约数个数记为div(x)。例如,10有4个约数:1、2、5、10。设a和b是两个正整数,试计算a和b之间约数个数最多的数x。
算法设计:对于给定的2个正整数a≤b,编程计算a 和 b 之间约数个数最多的数。
数据输入:输入数据由文件名为input.txt的文本文件提供。文件的第1 行有2 个正整数 a和 b。
结果输出: 若找到的a和b之间约数个数最多的数是x,则将div(x)输出到文件output.txt。
暴力比较法
#include <stdio.h>
#include <stdlib.h>
int divx(int);
void swap(int*,int*);
int main()
{
freopen("input.text","r",stdin);//輸入重定向
freopen("output.text","w",stdout);//輸出重定向
int a,b,i,temp=0;
scanf("%d %d",&a,&b);
for(i=a; i<=b; i++)
{
if(divx(i)>temp)
temp=divx(i);
}
printf("%d",temp);
fclose(stdin);
fclose(stdout);
return 0;
}
int divx(int x)//求約數個數
{
int sum=0,i;
if(x<=0)
return 0;
for(i= 1; i<=x; i++)
{
if(x%i == 0)
sum++;
}
return sum;
}