Codeforces Beta Round #86 (Div. 2 Only) E Double Happiness 素数筛法,费马平方和定理

Python辅助解决数学问题——一个数的数字平方和 Python辅助解决数学问题—— 一个数的数字平方和一、源头二、python的简单验证1. 对任意一个正整数的试验操作2. 对任意一个100以内的正整数的试验操作三、对进入1循环的数值进行分析:1. 从“01”,“10”的路径考虑:2. 从“100”的路径考虑:3. 从“130”的路径考虑:四、总结 一、源头 我们从任何一个正整数开始,比如说9246,求出它的各位数字的平方和(81+4+16+36=137),再对这个数做同样的事情(137给出1+9+49=59),并且对每次所得结果重复 阅读详情

题目链接

E. Double Happiness
time limit per test
3 seconds
memory limit per test
128 megabytes
input
standard input
output
standard output

On the math lesson a teacher asked each pupil to come up with his own lucky numbers. As a fan of number theory Peter chose prime numbers. Bob was more original. He said that number t is his lucky number, if it can be represented as:

t = a2 + b2, 
where  a, b are arbitrary positive integers.

Now, the boys decided to find out how many days of the interval [l, r] (l ≤ r) are suitable for pair programming. They decided that the day i(l ≤ i ≤ r) is suitable for pair programming if and only if the number i is lucky for Peter and lucky for Bob at the same time. Help the boys to find the number of such days.

Input

The first line of the input contains integer numbers l, r (1 ≤ l, r ≤ 3·108).

Output

In the only line print the number of days on the segment [l, r], which are lucky for Peter and Bob at the same time.

Examples
input
3 5
output
1
input
6 66
output
7

题目大意:求一个区间内满足,a^2+b^2=prime的(a,b)的数对。

题目思路:费马平方和定理,一个奇素数可以分解为两个数的平方和,那么这个奇素素一定是 4k+1 型的。(注意特判下2)

所以我们筛素数的同时对每个数判断一下。

然后我们要剪枝和优化,大概如下几点:

1:偶数全部都不满足,直接算而不用放进筛法里。

2:只用用奇素数进行素数筛,而且只晒出没有偶数因子的数。

3:筛法和判定一个数是否满足题目的条件同时进行。

4:bool[3e8]的内存是不够的,我们需要用bitset优化,bitset的空间,关于这个,我请教了一下q巨。


所以我们一般在windows64 下可以节省8倍空间

然后记得处理一下细节,即2这个素数不满足4k+1 型,但是它也是满足a^2+b^2的。

代码如下:

#include<bits/stdc++.h>
using namespace std;
const int maxn=3e8+10;
bitset<maxn>prime;
int Getprime(int l,int r)
{
	int cnt=0;
	if(l<=2&&2<=r) cnt++;
	l=max(l,3);
	if(l>r) return cnt;
	if(l%2==0&&r%2==0) cnt-=(r-l+2)>>1;//减去偶数不满足的情况 
	else if(l%2&&r%2) cnt-=(r-l)>>1;
	else if(l%2||r%2) cnt-=(r-l+1)>>1;
	cnt+=r-l+1;
	prime.reset();
	prime[0]=true;
	prime[1]=true;
	int i;
	for(i=3;i*i<=r;i+=2)
	{
		if(prime[i]) 
		{
			if(i>=l) cnt--;
			continue;
		}
		if(i>=l&&(i-1)%4) cnt--;
		for(int j=i*i;j<=r;j+=i<<1) prime[j]=true;
	}
	if(l%2==0) l++;
	i=max(l,i);
	for(;i<=r;i+=2)
	{
		if(prime[i]||(i-1)%4) cnt--;
	}
	return cnt;
}
int main()
{
	int l,r;
	while(~scanf("%d%d",&l,&r))
	{
		cout<<Getprime(l,r)<<endl;
	}
}



高斯整数、高斯素数、费马平方和定理 本文主要对高斯整数、高斯素数、费马平方和定理进行介绍。 阅读详情

相关推荐

从封装到先进封装:一文讲透Chiplet、2.5D/3D堆叠与系统集成

封装是芯片产业链中连接硅片与电路板的桥梁,承担物理保护、电气连接、散热与机械支撑等核心任务。传统封装从DIP、QFP发展到BGA,通过提升引脚密度满足早期性能需求。随着摩尔定律放缓,单纯缩小晶体管尺寸难以为继,先进封装应运而生,其核心理念从“封装单颗芯片”转向“系统级高密度集成”。扇出型封装、2.5D硅中介层、3D堆叠、Chiplet和系统级封装等技术,通过微米级互连和垂直堆叠,大幅提升I/O密度与带宽,成为AI芯片、HBM存储、高性能计算等领域的关键支撑。本文梳理先进封装的技术演进、分层架构与工程难点,帮

weixin_29185167的博客 369

费马平方和定理

费马平方和定理 费马平方和定理是由法国数学家费马在1640年提出的一个猜想,但他没有提出有力的数学证明,1747年,瑞士数学家莱昂哈德·欧拉提出证明后成为定理。 内容[ 费马平方和定理的表述是:奇质数能表示为两个平方数之和的充分必要条件是该素数被4除余1。 欧拉的证明[编辑] 欧拉在1747年证明了费马平方和定理,当年他四十岁。他在当年5月6日寄给哥德巴赫一封

fisty 4196

MOS管开关设计知识-(五种MOS管开关电路图方式)

在使用MOS管设计开关电源或者马达驱动电路的时候,大部分人都会考虑MOS的导通电阻,最大电压等,最大电流等,也有很多人仅仅考虑这些因素。这样的电路也许是可以工作的,但并不是优秀的,作为正式的产品设计也是不允许的。 下面是我对MOSFET及MOSFET驱动电路基础的一点总结,其中参考了一些资料,非全部原创。包括MOS管的介绍,特性,驱动以及应用电路。 1、MOS管种类和结构 MOSFET管是FET的...

树卡花 7万+

高斯整数 / 费马平方和定理 / 拉格朗日的四平方定理

一、高斯整数 形如。(其中a,b是整数)的复数被称为高斯整数,高斯整数全体记作Z[i]。注意到若 γ=a+bi 是高斯整数,则它是满足如下方程的代数整数: 通常我们使用希腊字母来表示高斯整数,例如α,β,γ和δ。注意到若 n 是一个整数,则 n=n+0i 也是高斯整数。当我们讨论高斯整数的时候,把通常的整数称为有理整数。 加、减、乘运算 高斯整数在加、减、乘运算下是封闭的,正如下面定...

Jeff_的博客 4246

Imatest-Star模块(西门子星图)

星图分析指南:基于ISO12233标准的MTF测试方法,通过放射状射线和正弦灰度变化评估相机SFR性能。

weixin_64706696的博客 1573

EGO_Plannerv2代码学习(一):栅格建图之V1 V2的区别

最近在尝试将高飞老师的集群规划器部署到真实无人机上跑一下,开这个新帖记录下学习过程中的问题和想法。

qq_41069236的博客 5753

费马二平方和定理

费马二平方定理是指除了2这个特殊的素数,所有的素数都可以分两类:被4除余1的素数,如5,13,17,29,37,41;第二类则是被4除余3的素数如3,7,11,19,23,31.第一类素数都能表示为两个整数的平方和,第二类都不能。 ———摘自百度 ...

Hathwayoung的博客 3135

车载以太网测试技术解析

在智能汽车与HiL测试领域,高效解析与模拟车载网络通信是开发验证的关键。ZD-Converter 2000以媒体/介质转换器、嗅探器、拦截器、仿真器四合一的颠覆性设计,成为工程师应对复杂车载以太网测试的瑞士军刀。它支持双路车载/标准以太网智能转换、实时通信嗅探、硬件级数据拦截及ECU通信模拟,更通过串口命令实现全参数远程配置,赋能自动化测试流程。本文将深度解析其核心功能与实战应用场景。

Triv2025的博客 1143

费马平方和定理java

费马平方和定理告诉我们: 一个非负整数 cc 能够表示为两个整数的平方和,当且仅当 cc 的所有形如 4 *k+3的质因子的幂次均为偶数。 public boolean judgeSquareSum(int c) { for (int i = 2; i * i <= c; i++) { int count = 0; if (c % i == 0) { while (c % i == 0) {

qq_46547406的博客 622

uniapp [全端兼容] - 详细实现人脸识别和活体检测功能,实时监测人脸是否进入区域及动作是否正确播报,免费自动提示引导动作及语音,提供提供实名认证、身份证识别、人脸信息采集、刷脸扫脸认证示例代码

uniapp,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,人脸识别,扫脸认证,人脸认证,活体认证,身份认证,uni-app人脸识别详细教程,如何在app端实现免费人脸识别教程,如何在小程序端做,最好用的插件,安卓ios百度人脸识别、活体检测、人脸采集APP,H5人脸识别带前后摄像头,适合新手看的人脸识别功能教程,详细示例代码源码,有没有免费的,接入百度,阿里云人脸识别,百度,api,活体检测,数据采集,动作提示指引,语音提示指引,报错,无法核验一直出错,根本用

🏆 前端领域优质创作者 1万+

提升YOLOv8性能:用Swin Transformer替换Backbone的详细实现与分析【YOLOv8】

YOLOv8作为目标检测领域的最新版本,在速度和精度之间取得了良好的平衡。然而,随着计算机视觉任务的复杂性不断增加,YOLOv8的标准主干网络(Backbone)在处理高分辨率图像或多尺度目标时,可能存在一定的局限性。为了进一步提升YOLOv8的性能,我们可以引入Swin Transformer替换其主干网络,以增强模型的全局感知能力和多尺度特征提取能力。本文将详细介绍如何在YOLOv8中用Swin Transformer替换原有的Backbone,提供代码示例,并深入探讨其中的原理和效果。

博客 1717

高斯定理证明(HTML)

HTML代码:&lt;html&gt; &lt;head&gt; &lt;title&gt;高斯定理&lt;/title&gt; &lt;/head&gt; &lt;BODY BGColor=F0F8FF&gt; &lt;H1&gt;&lt;font color=000000 size=7&gt;Gauss定理 &lt;br&gt;n为平方和等价于n的任一4k+3

nameofcsdn的博客 4634

一步步带你用C#开发Modbus通信上位机(附完整代码与工程思路)

Modbus上位机开发指南(C#实现) 本文详细介绍使用C#开发Modbus上位机系统的全过程,覆盖RTU和TCP两种协议。内容包含:1)需求分析与技术选型(WinForms+NModbus4);2)分层架构设计(UI/业务/通信层);3)通信层核心代码实现(串口/以太网连接、数据读写);4)功能模块开发(设备管理、数据采集、远程控制)。提供可直接复用的Modbus RTU客户端代码示例,包含连接管理、线圈读写、寄存器操作等工业场景必备功能。通过系统化的开发流程,帮助开发者快速构建稳定可靠的Modbus监控

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 821

两数平方和定理,勒让德三平方和定理,拉格朗日四平方和定理

婆罗摩笈多-斐波那契恒等式(Brahmagupta–Fibonacci identity): (a2+b2)(c2+d2)=(ac−bd)2+(ad+bc)2=(ac+bd)2+(ad−bc)2 \begin{aligned} \left(a^2 + b^2\right)\left(c^2 + d^2 \right) &= \left(ac - bd \right)^2 + \left(ad + bc\right)^2\\ &= \left(ac + bd \right)^2 + \left(ad - bc

思维缜密的博客 3397

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【数学】费马平方和定理证明 [简洁版]

可以。

Isaac Regulus的博客 981

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

关于费马平方和定理之证明

费马平方和定理任意被4除余1的素数p,都可表示为两个平方数之和.记为,p≡1(mod4)&lt;=&gt;p=x^2+y^2,x,y∈Z+.Brahmagupta-Fibonacci恒等式(a^2+b^2)(c^2+d^2)=(ac-bd)^2+(ad+bc)^2---------------------~----------------------(a^2+b^2)(c^2+d^2)=(ac+b...

weixin_34343308的博客 1292

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Fermat两数平方和定理

Fermat两数平方和定理初等方法Thue引理Ferma两平方和定理代数方法 初等方法 Thue引理 Thue引理 令n,b,r∗,t∗∈Zn,b,r^*,t^*\in Zn,b,r∗,t∗∈Z,其中0&lt;r∗≤n&lt;r∗t∗0&lt;r^*\leq n&lt;r^*t^*0<r∗≤n<r∗t∗,则存在r,t∈Zr,t\in Zr,t∈Z使得r=...

陈朕@shu 2670

[数论]高斯整数中的素数及费马平方和定理

<br /><br /><br /><br />注:这是从新浪网转载过来的<br />链接:http://blog.sina.com.cn/s/blog_6e3d28f70100n64y.html

TriSinker的专栏 2037

费马平方和定理、拉格朗日四平方和定理和欧拉恒等式

费马平方和定理:奇质数能表示为两个平方数之和的充分必要条件是该质数被4除余1 1.如果两个整数都能表示为两个平方数之和的形式,则他们的积也能表示为两个平方数之和的形式。 (a2+b2)(c2+d2)=a2c2+a2d2+b2c2+b2d2=(a2c2+b2d2−2abcd)+(a2d2+b2c2+2abcd)=(ac−bd)2+(ad+bc)2\begin{aligned}(a^2+b^2)(c^...

Tan_JX 2279

codeforces 113C C. Double Happiness(数论+暴力)

题目链接:codeforces 113C题目大意:找出在[l,r]中的素数t,满足t=a2+b2(a,b为任意正整数)t=a^2+b^2(a,b为任意正整数),输出这种素数的数量。题目分析: 首先筛出3⋅108所有为素数的奇数(偶数除了2都不可能是素数,为了节约内存)3 \cdot 10^8所有为素数的奇数(偶数除了2都不可能是素数,为了节约内存) 然后枚举范围内的每一个数,判断这个数是不是4*k

llin-黎辰 1977

LOJ 6465. 二平方和定理

SOL: 由费马二平方和定理,解是存在且唯一的。 那么x在高斯整数意义下(在高斯整数意义下,唯一分解定理同样成立),有两个互扼的非平凡约数。a+bi 与 a-bi、 (a+bi)*(a-bi)=a*a+b*b=x,可见a和b就是我们要求的答案。 我们找一个数k,使 x| k*k+1 ,那么 x|(k+i)(k-i) 又因为gcd(a,b)=1,gcd(k,1)...

827

Hrinity POJ

/* 把子串放进自动机里 母串在自动机里面走一遍 标记所有走到的节点和子串 子串去重 把子串的子串去掉就剩自己 */ #include #include const int MM = 3000005,M1 = 26; int N; char s[2505][1105]; char ch[1105]; char str[5100005]; char tmp[5100005]; bool vi

Yukar_syt的专栏 770

2016多校联赛4L (hdu5775) Bubble Sort

Bubble Sort Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 224    Accepted Submission(s): 147 Problem Description P is a permutati

overload1997 888

POJ 3978(求素数)

Primes Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3204 Accepted: 1245 Description A pretty straight forward task, calculate the number of primes b

code_or_code 2162

CodeForces114E——Double Happiness(素数二次筛选)

Double Happiness On the math lesson a teacher asked each pupil to come up with his own lucky numbers. As a fan of number theory Peter chose prime numbers. Bob was more original. He said that number t...

weixin_30369087的博客 182
上一篇: Codeforces Round #439 (Div. 2) C. The Intriguing Obsession dp
下一篇: hdu5618Jam's problem again (CDQ分治)
overload1997
博客等级 码龄11年 328粉丝 210原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值