NYOJ 完全平方数的个数

完全平方数的个数

时间限制:6500 ms  |  内存限制:65535 KB

难度:2

描述

给定整数区间[A,B]问其中有多少个完全平方数。

输入
多组数据,包含两个正整数A,B 1<=A<=B<=2000000000。
输出
每组数据输出一行包含一个整数,表示闭区间[A,B]中包含的完全平方数的个数。
样例输入
1 1
1 2
3 10
3 3
样例输出
1
1
2
0
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
using namespace std;
int main()
{
	int a,b;
	int c;
	while(scanf("%d%d",&a,&b)==2){
		if(a<b)
		c=(int)sqrt(b)-(int)sqrt(a-1);
		else
		c=(int)sqrt(a)-sqrt(a-1);
		printf("%d\n",c);
	}
	return 0;
}
时间: 2024-08-24 07:28:46

NYOJ 完全平方数的个数的相关文章

第五届在线编程大赛月赛第一题:完全平方数的个数

第五届在线编程大赛月赛第一题:完全平方数的个数 题目详情: 给定整数区间[A,B]问其中有多少个完全平方数. 输入格式: 多组数据,包含两个正整数A,B 1<=A<=B<=2000000000. 输出格式: 每组数据输出一行包含一个整数,表示闭区间[A,B]中包含的完全平方数的个数. 答题说明: 输入样例 1 1 1 2 3 10 3 3 输出样例: 1 1 2 0 java代码: import java.util.Scanner; public class One { public s

完全平方数的个数

描述 给定整数区间[A,B]问其中有多少个完全平方数. 输入 多组数据,包含两个正整数A,B 1<=A<=B<=2000000000. 输出 每组数据输出一行包含一个整数,表示闭区间[A,B]中包含的完全平方数的个数. 样例输入 1 1 1 2 3 10 3 3 样例输出 1 1 2 0 1 import java.util.Scanner; 2 3 public class Main { 4 public static void main(String[] args) { 5 Scan

华为机试—亮着电灯的盏数(求完全平方数的个数)

题目:亮着电灯的盏数 一条长廊里依次装有n(1≤n≤65535)盏电灯,从头到尾编号1.2.3.-n-1.n.每盏电灯由一个拉线开关控制.开始,电灯全部关着. 有n个学生从长廊穿过.第一个学生把号码凡是1的倍数的电灯的开关拉一下:接着第二个学生把号码凡是2的倍数的电灯的开关拉一下:接着第三个学生把号码凡是3的倍数的电灯的开关拉一下:如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下.n个学生按此规定走完后,长廊里电灯有几盏亮着. 注:电灯数和学生数一致.不能写笨拙的双重循环(优化过

华为机试—亮着电灯的盏数(1—N完全平方数的个数)

题目:亮着电灯的盏数 一条长廊里依次装有n(1≤n≤65535)盏电灯,从头到尾编号1.2.3.-n-1.n.每盏电灯由一个拉线开关控制.开始,电灯全部关着. 有n个学生从长廊穿过.第一个学生把号码凡是1的倍数的电灯的开关拉一下:接着第二个学生把号码凡是2的倍数的电灯的开关拉一下:接着第三个学生把号码凡是3的倍数的电灯的开关拉一下:如此继续下去,最后第n个学生把号码凡是n的倍数的电灯的开关拉一下.n个学生按此规定走完后,长廊里电灯有几盏亮着. 注:电灯数和学生数一致.不能写笨拙的双重循环(优化过

NYOJ 31 5个数求最值

描述 设计一个从5个整数中取最小数和最大数的程序 输入 输入只有一组测试数据,为五个不大于1万的正整数 输出 输出两个数,第一个为这五个数中的最小值,第二个为这五个数中的最大值,两个数字以空格格开. 样例输入 1 2 3 4 5 样例输出 1 5 #include <iostream> #include <climits> using namespace std; int main() { int m; int max=INT_MIN; int min = INT_MAX; for

nyoj 100-1的个数 (因为只统计1的个数,连栈都不需要了)

100-1的个数 内存限制:64MB 时间限制:3000ms 特判: No 通过数:33 提交数:42 难度:1 题目描述: 小南刚学了二进制,他想知道一个数的二进制表示中有多少个1,你能帮他写一个程序来完成这个任务吗? 输入描述: 第一行输入一个整数N,表示测试数据的组数(1<N<1000) 每组测试数据只有一行,是一个整数M(0=<M<=10000) 输出描述: 每组测试输出占一行,输出M的二进制表示中1的个数 样例输入: 复制 3 4 6 7 样例输出: 1 2 3 C/C+

BZOJ 2440: [中山市选2011]完全平方数(二分答案 + 莫比乌斯函数 + 容斥原理)

传送门 2440: [中山市选2011]完全平方数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2693  Solved: 1307[Submit][Status][Discuss] Description 小 X 自幼就很喜欢数.但奇怪的是,他十分讨厌完全平方数.他觉得这些 数看起来很令人难受.由此,他也讨厌所有是完全平方数的正整数倍的数.然而 这丝毫不影响他对其他数的热爱. 这天是小X的生日,小 W 想送一个数给他作为生日礼物.当然他不能送

BZOJ2440(完全平方数)二分+莫比乌斯容斥

题意:完全平方数是指含有平方数因子的数.求第ki个非完全平方数. 解法:比较明显的二分,getsum(int middle)求1-middle有多少个非完全平方数,然后二分.求1-middle的非完全平方数个数可以用总数减掉完全平方数个数.计算完全平方数的个数用容斥: 首先加上n/(2*2)+n/(3*3)+n/(5*5)+n/(7*7)...+...然后减掉出现两次的,然后加上三次的...奇加偶减.这就是mou的原型,用mou数组计算很简单: 代码: /********************

BZOJ 2440 完全平方数(莫比乌斯反演+二分查找)

题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=23362 题意:定义含有平方数因子的数为完全平方数(平方数因子不包含1).求第k个非完全平方数. 思路:我们先求出[1, n]的非完全平方数的个数,然后利用二分来查找正好等于k时的n(注意这样的n可能不止一个,求最左边的).关键是,怎么求出前者,我们可以利用容斥原理,用n - [1, n]内完全平方数的个数,求[1, n]内完全平方数的个数,用容斥发现前面的系数就是