超级玄学问题求助
  • 板块学术版
  • 楼主Take_A_Single_6
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/8/15 17:28
  • 上次更新2023/11/3 03:35:29
查看原帖
超级玄学问题求助
305895
Take_A_Single_6楼主2023/8/15 17:28
#include<bits/stdc++.h>
using namespace std;
inline int read()
{
    int SS=0,WW=1;
    char ch=getchar();
    while(ch<'0'||ch>'9')
	{
        if(ch=='-')WW=-1;
        ch = getchar();
    }
    while(ch>='0'&&ch<='9')
	{
        SS=(SS<<1)+(SS<<3)+(ch^48);
        ch=getchar();
    }
    return SS*WW;
}
inline void write(int XX)
{
    if(XX<0)putchar('-'),XX=-XX;
    if(XX>9)write(XX/10);
    putchar(XX% 10 + '0');
}
const long long maxn=10000000;
int q;
int z[maxn+100];
int p[10000005],ind,l,r,mp[maxn+100],s[maxn+100];
void init()
{
	for(int i=2;i<=maxn;i++)
    {
    	if(!z[i])p[++ind]=i,mp[i]=i;
        for(int j=1;j<=ind&&i*p[j]<=maxn;j++)
        {
        	z[i*p[j]]=1,mp[i*p[j]]=mp[i];
            if(i%p[j]==0)
            break;
        }
    }
    for(int i=1;i<=maxn;i++)
    {
    	s[i]=s[i-1];
    	if(mp[i]*mp[i]>i)s[i]=s[i]+1;
	}
}
signed main()
{
	freopen("find.in","r",stdin);
	freopen("find.out","w",stdout);
	q=read();
	init();
    for(int i=1;i<=q;i++)
        l=read(),r=read(),write(s[r]-s[l-1]),puts("");
    return 0;
}

为什么把int改成long long会影响输出

2023/8/15 17:28
加载中...