XTU-OJ 1355-Euler‘s Totient Function

2023-10-18 08:52
文章标签 function 1355 oj xtu totient euler

本文主要是介绍XTU-OJ 1355-Euler‘s Totient Function,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述

对于整数n,定义ϕ(n)为小于或等于n,并与n互质的整数的个数,比如6,比它小的和它互质的数有1,5,所以ϕ(6)=2。 如果n=pk11⋅pk22⋅…⋅pkmm,其中pi为不相同的素数。 那么ϕ(n)=n⋅(1−1p1)⋅…⋅(1−1pm)。

我们定义f(a,b)=∑bi=aϕ(i),请你写一个程序求f(a,b)。

输入

第一行是一个整数T(1≤T≤10000),表示样例的个数。 每个样例是一行,为两个整数a,b(1≤a≤b≤3000000)。

输出

每行输出一个样例的结果。

样例输入

3  
1 6  
1 100  
1 1000000

样例输出

12  
3044  
303963552392

解题思路: 欧拉筛进阶---->欧拉函数  +  前缀和 (老熟人了)

本题是一个很纯粹的模板题,就是计算 欧拉函数 公式(后面离散数学也会提到,话又说回来了,认真学习)。具体的概念解析有个博主写的很好,可以直接学习,点我跳转。

AC代码:

#include <stdio.h>int T,a,b;
const int MAXN = 3e6+5;
bool vis[MAXN];               // 筛选MAXN个素数
int prime[MAXN];              // 把素数依次存放在该数组中
__int64 phi[MAXN] = {0,1};void oula()
{for (int i = 2; i < MAXN; i ++){if ( !vis[i]){prime[++prime[0]] = i;      // prime[0] --> 筛选出的素数个数phi[i] = i-1;               // 素数i的  ϕ(i) = i-1;}for (int j = 1; j <= prime[0] && i <= MAXN/prime[j]; j ++){vis[i*prime[j]] = 1;        // 素数prime[j]的i倍为 合数phi[i*prime[j]] = phi[i]*phi[prime[j]];if (i % prime[j] == 0){phi[i*prime[j]] = phi[i]*prime[j];break;}}}for (int i = 1; i <= 3e6; i ++)phi[i] += phi[i-1];
}int main()
{oula();scanf("%d",&T);while ( T --){scanf("%d %d",&a,&b);printf("%I64d\n",phi[b]-phi[a-1]);}return 0;
}

这篇关于XTU-OJ 1355-Euler‘s Totient Function的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/231537

相关文章

Java function函数式接口的使用方法与实例

《Javafunction函数式接口的使用方法与实例》:本文主要介绍Javafunction函数式接口的使用方法与实例,函数式接口如一支未完成的诗篇,用Lambda表达式作韵脚,将代码的机械美感... 目录引言-当代码遇见诗性一、函数式接口的生物学解构1.1 函数式接口的基因密码1.2 六大核心接口的形态学

C++11的函数包装器std::function使用示例

《C++11的函数包装器std::function使用示例》C++11引入的std::function是最常用的函数包装器,它可以存储任何可调用对象并提供统一的调用接口,以下是关于函数包装器的详细讲解... 目录一、std::function 的基本用法1. 基本语法二、如何使用 std::function

XTU 1237 计算几何

题面: Magic Triangle Problem Description: Huangriq is a respectful acmer in ACM team of XTU because he brought the best place in regional contest in history of XTU. Huangriq works in a big compa

XTU 1233 n个硬币连续m个正面个数(dp)

题面: Coins Problem Description: Duoxida buys a bottle of MaiDong from a vending machine and the machine give her n coins back. She places them in a line randomly showing head face or tail face o

AutoGen Function Call 函数调用解析(一)

目录 一、AutoGen Function Call 1.1 register_for_llm 注册调用 1.2 register_for_execution 注册执行 1.3 三种注册方法 1.3.1 函数定义和注册分开 1.3.2 定义函数时注册 1.3.3  register_function 函数注册 二、实例 本文主要对 AutoGen Function Call

(function() {})();只执行一次

测试例子: var xx = (function() {     (function() { alert(9) })(); alert(10)     return "yyyy";  })(); 调用: alert(xx); 在调用的时候,你会发现只弹出"yyyy"信息,并不见弹出"10"的信息!这也就是说,这个匿名函数只在立即调用的时候执行一次,这时它已经赋予了给xx变量,也就是只是

js私有作用域(function(){})(); 模仿块级作用域

摘自:http://outofmemory.cn/wr/?u=http%3A%2F%2Fwww.phpvar.com%2Farchives%2F3033.html js没有块级作用域,简单的例子: for(var i=0;i<10;i++){alert(i);}alert(i); for循环后的i,在其它语言像c、java中,会在for结束后被销毁,但js在后续的操作中仍然能访

rtklib.h : RTKLIB constants, types and function prototypes 解释

在 RTKLIB 中,rtklib.h 是一个头文件,包含了与 RTKLIB 相关的常量、类型和函数原型。以下是该头文件的一些常见内容和翻译说明: 1. 常量 (Constants) rtklib.h 中定义的常量通常包括: 系统常量: 例如,GPS、GLONASS、GALILEO 等系统的常量定义。 时间常量: 如一年、一天的秒数等。 精度常量: 如距离、速度的精度标准。 2. 类型

【AI大模型应用开发】2.1 Function Calling连接外部世界 - 入门与实战(1)

Function Calling是大模型连接外部世界的通道,目前出现的插件(Plugins )、OpenAI的Actions、各个大模型平台中出现的tools工具集,其实都是Function Calling的范畴。时下大火的OpenAI的GPTs,原理就是使用了Function Calling,例如联网检索、code interpreter。 本文带大家了解下Function calling,看

Vite + Vue3 +Vant4出现Toast is not a function

今天写前端的时候出现了这个问题搞了我一会 搜集原因: 1:是vant版本的问题,Toast()的方法是vant3版本的写法,而我用的是vant4,vant4中的写法改成了showToast()方法,改正过来 import {showToast} from "vant";  发现还是报错,说是找不到对应的样式文件 2:Vant 从 4.0 版本开始不再支持 babel-plugin-i