杭电acm 2521反素数题,小弟愚昧不知我的代码哪错了,求大神赐教。看到别...
发布网友
发布时间:2024-10-29 16:30
我来回答
共1个回答
热心网友
时间:2024-10-29 16:49
欧拉公式+打表
你的就算对也是超时。
用数组就是把数据范围内所有符合条件的数都存起来,每个数只计算一次
给你个AC代码
#include "stdio.h"
#include "string.h"
#include "math.h"
int main()
{
int i,n,m,tt,t,j,k,flag,max,count[5002];
for(i=1;i<=5001;i++)
{
count[i]=0;
}
count[1]=1;count[2]=2;count[3]=2;
for (i=4;i<=5001;i++)
{
for(j=2;j<=i/2;j++)
if(i%j==0) count[i]++;
count[i]+=2;
}
scanf("%d",&t);
while (t--)
{
scanf("%d %d",&n,&m);
max=0;tt=n;
for (i=n;i<=m;i++)
{
if(count[i]>max)
{max=count[i];tt=i;}
}
printf("%d/n",tt);
}
return 0;
}