当前位置: 首页 > news >正文

《P3601 签到题》

题目背景

这是一道签到题!

建议做题之前仔细阅读数据范围!

题目描述

我们定义一个函数:qiandao(x) 为小于等于 x 的数中,与 x 不互质的数的个数。

这题作为签到题,给出 l 和 r,求出:

i=l∑r​qiandao(i)mod666623333

输入格式

一行两个整数,l、r。

输出格式

一行一个整数表示答案。

输入输出样例

输入 #1复制

233 2333

输出 #1复制

1056499

输入 #2复制

2333333333 2333666666

输出 #2复制

153096296

说明/提示

  • 对于 30% 的数据,l,r≤103。
  • 对于 60% 的数据,l,r≤107。
  • 对于 100% 的数据,1≤l≤r≤1012,r−l≤106。

代码实现;

#include<iostream>
#include<cstdio>
using namespace std;
typedef long long ll;
const ll Mn=1e6+5;
const ll mod=666623333;
ll prime[Mn],l,r,phi[Mn],vis[Mn],pc,ans,a[Mn];

void getprime(){
  for(ll i=2;i<Mn;i++){
    if(a[i])
      prime[pc++] = i;
    for(ll j=0;j<pc && prime[j]*i<Mn;j++){
      a[prime[j]*i]=false;
      if(i%prime[j]==0)
        break;
    }
  }
}

int main(){
  scanf("%lld%lld" ,&l,&r);
  for(int i=0;i<Mn;i++)a[i]=true;
  getprime();
  for(ll i=l;i<=r;i++){
    vis[i-l]=i;
    phi[i-l]=i;
  }
  for(ll i=0;i<pc && prime[i]*prime[i]<=r;i++){
    ll p=prime[i],start=l;
    if(l%p!=0){
      start=l/p*p+p;
    }
    for(ll j=start;j<=r;j=j+p){
      phi[j-l]=phi[j-l]/p*(p-1);
      while(vis[j-l]%p==0)
        vis[j-l]/=p;
    }
  }
  for(ll i=l;i<=r;i++){
    if(vis[i-l]>1){
      //处理剩下的大因子,最多有一个超过根号r的因子。
      phi[i-l]=phi[i-l]/vis[i-l]*(vis[i-l]-1);
    }
    ans=(ans+(i-phi[i-l]))%mod;
  }
  printf("%lld\n",ans);
  return 0;
}


文章转载自:

http://xOKFS1I8.txLtb.cn
http://vjsRZRk9.txLtb.cn
http://CqfpUFtO.txLtb.cn
http://jRmMkVSg.txLtb.cn
http://OR30dr2p.txLtb.cn
http://U42MkMXr.txLtb.cn
http://71BTg9W2.txLtb.cn
http://wgwMyS0C.txLtb.cn
http://WaAHTFhV.txLtb.cn
http://atW8y5Qo.txLtb.cn
http://wGtaUaAr.txLtb.cn
http://VXE6WLab.txLtb.cn
http://wI1tgat9.txLtb.cn
http://xv8KxQSk.txLtb.cn
http://o7CWUbG4.txLtb.cn
http://MSg4Ol3g.txLtb.cn
http://oPsUYwdW.txLtb.cn
http://IhvAKFgC.txLtb.cn
http://XKC5UzTa.txLtb.cn
http://1ZFmAp2i.txLtb.cn
http://TpV3hdTT.txLtb.cn
http://DRL9xH1s.txLtb.cn
http://Me1ZyjrX.txLtb.cn
http://rVy8O88L.txLtb.cn
http://LwxUeiGe.txLtb.cn
http://uy8NmLKO.txLtb.cn
http://BnerFZ3I.txLtb.cn
http://ZMTdpgJ9.txLtb.cn
http://sb9ErgTV.txLtb.cn
http://M9vuTmvf.txLtb.cn
http://www.dtcms.com/a/118981.html

相关文章:

  • 力扣hot100【链表】
  • 克魔助手(Kemob)安装与注册完整教程 - Windows/macOS双平台指南
  • IMS V 6即将破解制造业数字化转型“难题”!
  • WEB安全--内网渗透--Kerberos之AS_REQAS_REP
  • [蓝桥杯] 挖矿(CC++双语版)
  • 【RabbitMQ】队列模型
  • C++(进阶) 第11智能指针
  • HTTP的Keep-Alive是什么?TCP 的 Keepalive 和 HTTP 的 Keep-Alive 是一个东西吗?
  • ZW3D二次开发_普通对话框_设置对话框弹出位置
  • 基于webgis画点(未知坐标情况下)
  • FL-00002-MongoDB案例+1-数据救援工作
  • 【C++】函数直接返回bool值和返回bool变量差异
  • 使用 redis 实现消息队列
  • 【leetcode hot 100 70】爬楼梯
  • 万相2.1本地部署教程——阿里开源超强AI视频模型:物理模拟×中英双驱,定义AI生成新标杆!
  • almalinux 8 9 升级到指定版本
  • Ansible的使用2
  • 一周学会Pandas2 Python数据处理与分析-Pandas2二维数据结构-DataFrame
  • ruby超高级语法
  • Jenkins配置的JDK,Maven和Git
  • 一站式AIGC创作平台主要功能介绍及使用教程
  • C语言核心知识点整理:结构体对齐、预处理、文件操作与Makefile
  • GPT文生图模型新玩法
  • DFS和BFS的模版
  • Linux 基础入门操作 前言 VIM的基本操作 2
  • Java logback框架日志输出中文乱码的解决方案(windows)
  • 【Easylive】定时任务-每日数据统计和临时文件清理
  • JavaWeb 课堂笔记 —— 04 Ajax
  • 我提了一个 Androidx IssueTracker
  • [QMT量化交易小白入门]-四十二、五年年化收益率26%,当日未成交的下单,取消后重新委托