Hang有n个大饼,无聊的Hang在将这n个瓶排成一行,然后 emmmm我要干啥来着的
Hang给每个大饼上编上编号,编号从1~n,Hang从i i∈[1,n],每次把i的倍数的饼都翻过来
Hang想知道最后编号朝上的饼的编号和为多少
因为Hang是个良心出题人,所以Hang把AC代码直接放在了下面,复制粘贴,再加点头文件啥的就能过超时
map<int,int>a;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
ll ans=0;
for(int i=1;i<=n;i++)
a[i]=0;
for(int i=2;i<=n;i++)
for(int j=i;j<=n;j+=i)
a[j]^=1;
for(int i=1;i<=n;i++)
if(a[i])
ans+=i;
printf("%lld\n",ans);
}
return 0;
}
t组数据(也才1e5组)
每组一个正整数n,因为是签到题,所以n不会超过1e9
每组数据输出一行,如题意所示
1 1
0