完全平方数

完全平方数

https://ac.nowcoder.com/acm/problem/14733

题目描述

多次查询[l,r]范围内的完全平方数个数

定义整数x为完全平方数当且仅当可以找到整数y使得y*y=x

输入描述:

第一行一个数n表示查询次数
之后n行每行两个数l,r

输出描述:

对于每个查询,输出一个数表示答案
示例1

输入

5
1 3
1 4
2 4
4 4
1 1000000000

输出

1
2
1
1
31622

备注:

n <= 100000
0<= l <= r <= 1000000000

题解

本题还是比较好想的,直接求的话肯定不划算,预处理一下所有的完全平方数然后查找就可以。
需要注意一点的就是一定别忘了0!!!

代码

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+100;
#define ll long long
ll a[N];
void init(){
    for(ll i=0;i<N;++i){
        a[i]=i*i;
    }
}
int main(){
    int n;
    scanf("%d",&n);
    init();
    while(n--){
        ll l,r;
        scanf("%lld%lld",&l,&r);
        l=lower_bound(a,a+N,l)-a;
        r=upper_bound(a,a+N,r)-a;
        printf("%lld\n",max(r-l,0LL));
    }
}


杂题题解 文章被收录于专栏

各种各样题目的题解

全部评论

相关推荐

不懂!!!:感觉你的项目描述太简单了,建议使用star描述法优化提炼一下,就是使用什么技术或方案解决了什么问题,有什么效果或成果,例如:对axios进行了二次封装,实现了请求的统一管理、错误的集中处理以及接口调用的简化,显著提高了开发效率和代码维护性,使用canvas技术实现了路线绘制功能,通过定义路径绘制函数和动态更新机制,满足了简化的导航可视化需求,提升了用户体验。像什么是使用其他组件库,基本功能描述就最好不要写到项目成果里面去了,加油
点赞 评论 收藏
分享
练习JAVA时长两年半:qps 30000
点赞 评论 收藏
分享
会不会进去就面临裁员啊....
MellowWW:我朋友签的美区销售岗,这才是天崩开局
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务