#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<time.h>
static int a=0,b=0;
static int x;
static int max=0;
int m,i,j;
//生成a,b
void r()
{
FILE *fp;
system("CLS");
printf("\n");
a=rand()%10000+1;
b=rand()%10000+1;
while(a>b)
{
a=rand()%10000+1;
b=rand()%10000+1;
}
fp=fopen("input.txt","w");
fprintf(fp,"%d ",a);
fprintf(fp,"%d",b);
fclose(fp);
printf("a=%d,b=%d\n",a,b);
printf("a,b已写入input.txt\n\n");
max=0;
}
//找约数最大的数
void c()
{
FILE *fp;
fp=fopen("output.txt","w");
system("CLS");
if(a==0)
{
printf("请先选择 1 生成区间[a,b]\n\n");
return;
}
for(i=a;i<=b;i++)
{
m=0;
for(j=1;j<=i;j++)
{
if(i%j==0)
{
m++;
}
}
if(max<m)
{
max=m;
x=i;
}
}
printf("约数最多的数是:%d\n",x);
fprintf(fp,"约数最多的数是:%d\n",x);
for(j=1;j<=x;j++)
{
if(x%j==0)
{
printf("约数:%d\n",j);
fprintf(fp,"约数:%d\n",j);
}
}
printf("一共有%d个\n\n",max);
fprintf(fp,"一共有%d个\n\n",max);
fclose(fp);
printf("已写入output.txt\n\n");
}
void main()
{
char flag;
srand((int)time(NULL));
while(1)
{
//system("CLS");
printf("1、随机生成区间[a,b]\n");
printf("2、找[a,b]内约数最多的数\n");
printf("3、退出本程序\n");
printf("-------------------------------\n");
printf("请选择:");
scanf("%c",&flag);
getchar();
switch(flag)
{
case '1':
r();
break;
case '2':
c();
break;
case '3':
return;
default:
system("CLS");
printf("\n输入有误,重新输入!\n\n");
break;
}
}
}