https://www.luogu.org/problemnew/show/P3601

一道关于欧拉函数的题。

读完题目以后我们知道所谓的$aindao(x)=x- \phi (x) $。

对于x小的情况下我们当然可以用 枚举因子或者线型筛求得,然而x打了以后就数组装不下了。

注意区间大小,我们完全可以只求这一部分区间内的x的$ \phi (x) $,数字移一下位置就好了。

然而求没一个数的欧拉函数值时我们只用到了,小于等于$\sqrt x$的质因子(就想线性筛一样),所以我们只需要晒出小于$\sqrt r$的素数是什么,然后了枚举区间中每一个数的倍数然后用公式进行不断地更新就好了。

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
using namespace std;
#define LL long long
#define mod 666623333
LL prime[],vis[],tot,cnt,phi[];
LL l,r,ans;
void prepare()
{
for(int i=;i<=;i++)
{
if(!vis[i])prime[++tot]=i;
for(int j=;j<=tot&&prime[j]*i<=;j++)
{
vis[prime[j]*i]=;
if(i%prime[j]==)
{
// phi[i*prime[j]]=phi[i]*prime[j];
break;
}
// else phi[i*prime[j]]=phi[i]*phi[prime[j]];
}
}
}
LL A[],B[];
int main()
{
prepare();
scanf("%lld%lld",&l,&r);
for(LL i=;i<=r-l+;i++)phi[i]=B[i]=i+l-;
for(LL i=;i<=tot&&prime[i]*prime[i]<=r;i++)
{
LL lb=prime[i]*(l/prime[i]),rb=prime[i]*(r/prime[i]);
// cout<< lb<<" "<<rb<<"\n";
for(LL j=lb;j<=rb;j+=prime[i])
{
if(j>=l)
{
phi[j-l+]=phi[j-l+]/prime[i]*(prime[i]-);
while(B[j-l+]%prime[i]==)B[j-l+]/=prime[i];
}
}
} for(int i=;i<=r-l+;i++)
{
if(B[i]>)phi[i]=phi[i]/B[i]*(B[i]-); //剩下一堆大质数了。
ans+=l+i--phi[i];ans%=mod;
}
cout<<ans;
}

洛谷 P3601 签到题的更多相关文章

  1. A 洛谷 P3601 签到题 [欧拉函数 质因子分解]

    题目背景 这是一道签到题! 建议做题之前仔细阅读数据范围! 题目描述 我们定义一个函数:qiandao(x)为小于等于x的数中与x不互质的数的个数. 这题作为签到题,给出l和r,要求求. 输入输出格式 ...

  2. 洛谷P3601签到题(欧拉函数)

    题目背景 这是一道签到题! 建议做题之前仔细阅读数据范围! 题目描述 我们定义一个函数:qiandao(x)为小于等于x的数中与x不互质的数的个数. 这题作为签到题,给出l和r,要求求. 输入输出格式 ...

  3. 洛谷P3601 签到题

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...

  4. 洛谷3794 签到题IV

    题目描述 给定一个长度为n的序列$a_1,a_2...a_n$,其中每个数都是正整数. 你需要找出有多少对(i,j),$1 \leq i \leq j \leq n$且$gcd(a_i,a_{i+1} ...

  5. 洛谷P3764 签到题 III

    题目背景 pj组选手zzq近日学会了求最大公约数的辗转相除法. 题目描述 类比辗转相除法,zzq定义了一个奇怪的函数: typedef long long ll; ll f(ll a,ll b) { ...

  6. 【noip】跟着洛谷刷noip题2

    noip好难呀. 上一个感觉有点长了,重开一个. 36.Vigenère 密码 粘个Openjudge上的代码 #include<cstdio> #include<iostream& ...

  7. [洛谷P1707] 刷题比赛

    洛谷题目连接:刷题比赛 题目背景 nodgd是一个喜欢写程序的同学,前不久洛谷OJ横空出世,nodgd同学当然第一时间来到洛谷OJ刷题.于是发生了一系列有趣的事情,他就打算用这些事情来出题恶心大家-- ...

  8. 洛谷P5274 优化题(ccj)

    洛谷P5274 优化题(ccj) 题目背景 CCJCCJ 在前往参加 Universe \ OIUniverse OI 的途中... 题目描述 有一个神犇 CCJCCJ,他在前往参加 Universe ...

  9. 洛谷 P4148 简单题 KD-Tree 模板题

    Code: //洛谷 P4148 简单题 KD-Tree 模板题 #include <cstdio> #include <algorithm> #include <cst ...

随机推荐

  1. 三、python的基本类型

    一.number 整数 int 浮点数 float 1.type()查看类型 >>> type(1) <class 'int'> >>> type(1. ...

  2. maven工程运行出Unable to compile class for JSP: 错误

    使用mvn tomcat:run运行时出现500错误,使用tomcat7再次运行就好了 更新,上面的是在命令行操作的 如果要在idea上面出现错误的话需要在pom.xml上配置下面的语句 org.ap ...

  3. CSS揭秘—打字动效(四)

    前言:     所有实例均来自<CSS揭秘>,该书以平时遇到的疑难杂症为引,提供解决方法,只能说秒极了,再一次刷新了我对CSS的认知 该书只提供了关键CSS代码,虽然有在线示例代码链接,但 ...

  4. linux下提示/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found 解决办法

    1.查看gcc版本中包含哪些库. strings /usr/lib64/libstdc++.so.6 | grep GLIBC GLIBCXX_3. GLIBCXX_3.4.1 GLIBCXX_3.4 ...

  5. Spring创建对象的几种方法

    一.通过构造器 无参构造器 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...

  6. 开发工具~nuget配置本地源

    我们在本地部署了自己的nuget服务器,有时可以需要用到nuget restore命令去恢复包包,它会从下面的nuget.config里读你的配置源信息,就是在这里,我们要把内测的nuget服务器路径 ...

  7. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">报错

    https://blog.csdn.net/qq_36611526/article/details/79067159 今天遇到个问题 文件内引入某个资源 pom.xml头部http://maven.a ...

  8. laravel-mix 热重载404的问题

    在项目中,使用npm run hot时,无法加载 http://localhost:8080/js/app.js 以及 http://localhost:8080/css/app.css 版本 Lar ...

  9. iOS 容联离线消息推送

    容联 SDK 是包含离线消息推送的.首先我们要在控制台上传P12证书,(生产证书和开发证书),(证书的配置这里就不多说了)只能有一个证书是生效中的 生产证书需要打包成 ipa 包才能测试离线推送 然后 ...

  10. NIO基础之Buffer

    java.io 核心概念是流,即面向流的编程,在java中一个流只能是输入流或者输出流,不能同时具有两个概念. java.nio核心是 selector.Channel.Buffer ,是面向缓冲区( ...