数论,水题,反素数

反素数就是满足对于任意i(0 Input
第一行输入n,接下来n行测试数据
输入包括a,b, 1<=a<=b<=5000,表示闭区间[a,b].
Output
输出为一个整数,为该区间因子最多的数.如果满足条件有多个,则输出其中最小的数.
Sample Input
3
2 3
1 10
47 359
Sample Output
2
6
240

代码:

/*
求一个区间[a,b]中因子数最多的数,若最多的数不止一个,输出最小的那个数
1.可以暴力查找(a,b数不大) 
2.可以用求因子数的算法来求
ans=(1+a1)*(1+a2)*...*(1+an)
a1指改数质因数分解后2个数,以此类推
*/
#include
int prime[1000];
int book[5005];
int k;
void sss()
{
	int i,j;
	for(i=2;i<=5000;i++)
	{
		if(book[i]==0)
		{
			book[i]=1;
			prime[k++]=i;
			for(j=i+i;j<=5000;j+=i)
				book[j]=1;
		}
	}
}
void two(int a,int b)
{
	int maxx=0,ans,i,x,null,A;
	for(;a<=b;a++)
	{
		A=a,ans=1;
		for(i=0;i

你可能感兴趣的:(数论水题反素数)