Time Limit: 1 second

Memory Limit: 128 MB

【问题描述】

任何一个整数N都能表示成另外两个整数a和b的平方差吗?如果能,那么这个数N就叫做Couple number。你的工作就是判断一个数N是不是Couple number。

【输入格式】

仅一行,两个长整型范围内的整数n1和n2,之间用1个空格隔开。

【输出格式】

输出在n1到n2范围内有多少个Couple number。 注意:包括n1和n2两个数,且n1<n2,n2 -="" n1="" <="10" 000="" 000。=""

【数据规模】

Sample Input1

1 10

Sample Output1

7

【题解】
这是道数论的题目;需要考虑一番。
首先假设当前判断的数字是i;
i=x^2-y^2;利用平方差公式可化为
i=(x+y)*(x-y);
然后令a=(x+y),b=(x-y);
a=x+y ···①
b=x-y ···②
①+②
x=(a+b)/2;
①-②
y=(a-b)/2;
要让正数x,y存在。则a+b,a-b一定是两个偶数。则a,b一定是同奇数或同偶数。
i=a*b;
即让乘的a和b同奇数或同偶数。
首先如果i为奇数。则一定可以。
因为i=1*i,1为奇数,i也为奇数!
然后是偶数。
偶数有两类。一类是这样的
2*(2n+1),2*(2n);
这两类中后者是一定可以的。因为2为偶数,(2n)也为偶数。则满足ab同奇或同偶。
然后前者是2*一个奇数的形式,奇数是不可能由一个偶数乘出来的,所以(2n+1)不能分解成2*(...)的形式。
这就确定了前者所属的偶数类型只能由一个奇数乘一个偶数得来。
这是不符合题意的。
然后如果概括一下就是:奇数+4的倍数(包括0);
如果出现负数按照正数的处理即可。x^2-y^2中,x和y可以调换顺序啊!
【代码】
#include <cstdio>

int n1, n2,s,t,tot = 0;

int main()
{
scanf("%d%d", &n1, &n2); //输入区间范围。
s = n1; t = n2;//确定起点和终点
if (n1 < 0 && n2 < 0)//如果都小于0,则取反调换顺序
s = -n2, t = -n1;
if (n1 < 0 && n2>=0)//如果一个小于0一个大于等于0(注意等于),则分成两段[n1..0)[0,n2]
{
s = 0; t = n2;
for (int i = 1; i <= -n1; i++)//先加[n1..0)这一段。
if ((i % 2) == 1 || (i % 4) != 2)//奇数和4的倍数。
tot++;
}
for (int i = s; i <= t; i++)//执行需要另外加的部分。
if ((i % 2) == 1 || (i % 4) != 2)
tot++;
printf("%d\n", tot);
return 0;
}





Sample Output1

7

【u020】Couple number的更多相关文章

  1. 【POJ2104】【HDU2665】K-th Number 主席树

    [POJ2104][HDU2665]K-th Number Description You are working for Macrohard company in data structures d ...

  2. 【SPOJ】NUMOFPAL - Number of Palindromes(Manacher,回文树)

    [SPOJ]NUMOFPAL - Number of Palindromes(Manacher,回文树) 题面 洛谷 求一个串中包含几个回文串 题解 Manacher傻逼题 只是用回文树写写而已.. ...

  3. 【LeetCode】Largest Number 解题报告

    [LeetCode]Largest Number 解题报告 标签(空格分隔): LeetCode 题目地址:https://leetcode.com/problems/largest-number/# ...

  4. 【LeetCode】792. Number of Matching Subsequences 解题报告(Python)

    [LeetCode]792. Number of Matching Subsequences 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://f ...

  5. 【LeetCode】673. Number of Longest Increasing Subsequence 解题报告(Python)

    [LeetCode]673. Number of Longest Increasing Subsequence 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https:/ ...

  6. 【LeetCode】Single Number I & II & III

    Single Number I : Given an array of integers, every element appears twice except for one. Find that ...

  7. 【HDU3948】 The Number of Palindromes (后缀数组+RMQ)

    The Number of Palindromes Problem Description Now, you are given a string S. We want to know how man ...

  8. 【leetcode78】Single Number II

    题目描述: 给定一个数组,里面除了一个数字,其他的都出现三次.求出这个数字 原文描述: Given an array of integers, every element appears three ...

  9. 【leetcode79】Single Number III

    题目描述: 给定一个数组,里面只有两个数组,只是出现一次,其余的数字都是出现两次,找出这个两个数字,数组形式输出 原文描述: Given an array of numbers nums, in wh ...

随机推荐

  1. C#中流,字节,字符,字符串

    首先要明白它们本身是由什么组成的: 流:二进制 字节:无符号整数 字符:Unicode编码字符 字符串:多个Unicode编码字符 那么在.net下它们之间如何转化呢? 一般是遵守以下规则: 流-&g ...

  2. 用jersey写 java restfull web services 输出xml格式数据

    1 logic package com.toic.rest; import com.toic.model.Folder; import java.util.logging.Logger; import ...

  3. 字符设备驱动-----Linux中断处理体系结构

    一.中断处理体系结构的初始化 Linux内核将所有的中断统一编号,使用一个irq_desc结构数组来描述这些中断;每个数组项对应一个中断,也可能是一组中断,它们共用相同的中断号,里面记录了中断的名称. ...

  4. Behavioral模式之Visitor模式

    1.意图 表示一个作用于某对象结构中的各元素的操作.它使你能够在不改变各元素的类的前提下定义作用于这些元素的新操作. 2.别名 无 3.动机 考虑一个编译器.他将源程序表示为一个抽象语法树.该编译器须 ...

  5. amazeui学习笔记二(进阶开发4)--JavaScript规范Rules

    amazeui学习笔记二(进阶开发4)--JavaScript规范Rules 一.总结 1.注释规范总原则: As short as possible(如无必要,勿增注释):尽量提高代码本身的清晰性. ...

  6. C/S与B/S架构比较

    一C/S 1.C/S概念 C/S是Client/Server的缩写.服务器通常采用高性能的PC.工作站或小型机,并采用大型数据库系统,如Oracle.Sybase.Informix或 SQL Serv ...

  7. hadoop组件及其作用

    1.hadoop有三个主要的核心组件:HDFS(分布式文件存储).MAPREDUCE(分布式的计算).YARN(资源调度),现在云计算包括大数据和虚拟化进行支撑. 在HADOOP(hdfs.MAPRE ...

  8. 具体解释ebs接口之客户配置文件导入(二)

    ------------------------------------ -- 1a. Setup the Org_id ------------------------------------ ex ...

  9. TensorFlow 学习(十五)—— tensorflow.python.platform

    tensorflow.python.platform 下的常用工具类和工具函数:tensorflow/tensorflow/python/platform at master · tensorflow ...

  10. 安装orabbix

    须知: (1). orabbix使用root用户安装. (2). orabbix安装在zabbix server端,而不是安装在Oracle端.   1.下载 Orabbix   2. 解压软件 un ...