【洛谷 1348】Couple number

it2022-05-05  153

题目描述

任何一个整数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。

输入输出样例

输入样例#1: 复制1 10输出样例#1: 复制7

解析:本题若是暴力枚举,时间一定会爆,so我们想到了数论√(1)a^2-b^2=(a+b)(a-b)=>a+b与a-b奇偶性相同(2)所以(a+b)(a-b)要么是奇数,要么是4的倍数(3)couple number要么是奇数,要么是4的倍数如何证明:AB均奇,A+B为偶,A-B也为偶,奇偶性相同AB均偶,A+B偶,A-B也为偶,奇偶性相同A奇B偶,A+B奇,A-B也为奇,奇偶性相同A偶B奇,A+B为奇,A-B也为奇,奇偶性相同【好累啊嘤嘤嘤~~~~~,代码很短,思路很巧】

#include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> typedef long long ll; using namespace std; int n1,n2,ans=0; int main(){ cin>>n1>>n2; for(int i=n1;i<=n2;i++) if(i%4==0||i%2!=0)ans++; cout<<ans<<endl; return 0; }

 

转载于:https://www.cnblogs.com/wuhu-JJJ/p/11149985.html

相关资源:各显卡算力对照表!

最新回复(0)