首页 > 其他分享 >LightOJ1007---Mathematically Hard (欧拉函数)

LightOJ1007---Mathematically Hard (欧拉函数)

时间:2023-04-23 15:36:03浏览次数:45  
标签:prime const Hard LightOJ1007 number long Mathematically score include


Mathematically some problems look hard. But with the help of the computer, some problems can be easily solvable.

In this problem, you will be given two integers a and b. You have to find the summation of the scores of the numbers from a to b (inclusive). The score of a number is defined as the following function.

score (x) = n2, where n is the number of relatively prime numbers with x, which are smaller than x

For example,

For 6, the relatively prime numbers with 6 are 1 and 5. So, score (6) = 22 = 4.

For 8, the relatively prime numbers with 8 are 1, 3, 5 and 7. So, score (8) = 42 = 16.

Now you have to solve this task.
Input

Input starts with an integer T (≤ 105), denoting the number of test cases.

Each case will contain two integers a and b (2 ≤ a ≤ b ≤ 5 * 106).
Output

For each case, print the case number and the summation of all the scores from a to b.
Sample Input

Output for Sample Input

3

6 6

8 8

2 20

Case 1: 4

Case 2: 16

Case 3: 1237
Note

Euler’s totient function applied to a positive integer n is defined to be the number of positive integers less than or equal to n that are relatively prime to n. is read “phi of n.”

Given the general prime factorization of , one can compute using the formula

把1-5000000的欧拉函数筛选出来存起来,然后预处理前缀和,注意long long会溢出,要用unsigned long long

/*************************************************************************
    > File Name: LightOJ1007.cpp
    > Author: ALex
    > Mail: zchao1995@gmail.com 
    > Created Time: 2015年06月04日 星期四 17时41分21秒
 ************************************************************************/

#include <functional>
#include <algorithm>
#include <iostream>
#include <fstream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <queue>
#include <stack>
#include <map>
#include <bitset>
#include <set>
#include <vector>

using namespace std;

const double pi = acos(-1.0);
const int inf = 0x3f3f3f3f;
const double eps = 1e-15;
typedef long long LL;
typedef pair <int, int> PLL;

static const int N = 5000010;
int phi[N];
unsigned long long Arr[N];

void getphi() {
    for (int i = 1; i <= 5000000; ++i) {
        Arr[i] = i;
    }
    for (int i = 2; i <= 5000000; ++i) {
        if (Arr[i] == i) {
            if (5000000 / i < i) {
                break;
            }
            for (int j = i * i; j <= 5000000; j += i) {
                Arr[j] = i;
            }
        }
    }
    phi[1] = 1;
    for (int i = 2; i <= 5000000; ++i) {
        phi[i] = phi[i / Arr[i]];
        if ((i / Arr[i]) % Arr[i]) {
            phi[i] *= (Arr[i] - 1);
        }
        else {
            phi[i] *= Arr[i];
        }
    }
}

int main() {
    getphi();
    int t, icase = 1;
    Arr[0] = 0;
    for (int i = 1; i <= 5000000; ++i) {
        Arr[i] = Arr[i - 1] + (unsigned long long)phi[i] * phi[i];
    }
    scanf("%d", &t);
    while (t--) {
        int a, b;
        scanf("%d%d", &a, &b);
        printf("Case %d: %llu\n", icase++, Arr[b] - Arr[a - 1]); 
    }
    return 0;
}


标签:prime,const,Hard,LightOJ1007,number,long,Mathematically,score,include
From: https://blog.51cto.com/u_11760658/6217751

相关文章

  • 「独家解析」ShardingSphere分库分表技术实践,助力MySQL性能提升
    ApacheShardingSphere是一个开源的分布式数据库中间件解决方案组成的生态圈。它由三个产品组成:JDBC、Proxy和Sidecar。这些产品相互独立,但可以混合部署和配合使用,以提供标准化的数据分片、分布式事务和数据库治理功能。JDBC是ShardingSphere的基础组件,提供数据分片和读写分......
  • kconfig-hardened-check linux 内核安全选项检查工具
    kconfig-hardened-check是一个内核安全配置选项的检查工具,可以快速的帮助我们发现内核的一些安全配置项对于安全有比较高要求的还是值得使用的参考使用安装 python3-mvenvvenvsourcevenv/bin/activatepipinstall-Upippipinstallgit+https:......
  • shardingjdbc
    shardingjdbc:轻量级数据库中间层,实现分表分库HikariCP:当下比较火的数据库连接池qiniu-java-sdk:此SDK适用于Java7及以上版本。使用此SDK构建您的网络应用程序,能让您以非常便捷地方式将数据安全地存储到七牛云上。无论您的网络应用是一个网站程序,还是包括从云端(服务端程序)到......
  • 恢复 git reset -hard 的误操作
    有时候使用Git工作得小心翼翼,特别是涉及到一些高级操作,例如 reset, rebase 和 merge。甚至一些很小的操作,例如删除一个分支,我都担心数据丢失。不久之前,我在做一些大动作(rebasing)之前,我总是备份整个版本库,以防万一。直到最近我才发现git的历史记录是不可修改的,也就是说你不能更......
  • Codeforces Round 850 (Div. 2, based on VK Cup 2022 - Final Round) E. Monsters (h
    传送门详细题解传送门  抄的ygg代码,向在这里说一下刚开始没看懂的部分。  求答案的时候是把所有的当前为止的所有数值加起来减去一个从1开始并且公差为1的等差数列的前size项和。其中size是当前最多能用到哪个位置,满足前size项能构成1,2,3,....,sz这样的形式。  假设我们......
  • 3、ShardingSphere实战(三)
    一、前言:本项目按照时间字段进行分表,需要提前将主表写入数据库优势:1、实现自动建表,且不需要配置SQL2、范围分表查询时自动排除不存在的表 二、项目实战:1、创建主表:CREATETABLE`t_user`(`id`bigint(32)NOTNULL,`name`varchar(255)DEFAULTNULL,`create_a......
  • 2、ShardingSphere中间件(二)
    一、ShardingSphere中间件:1、简介:(1)、概述:ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar这三款相互独立的产品组成。他们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异......
  • Ace Hardware Corporation: 一家五金零售商的EDI
    AceHardwareCorporation(以下简称Ace)是一家总部位于美国伊利诺伊州奥克布鲁克的美国五金零售商合作社,成立于1924年。公司的目标是为其成员提供有竞争力的价格、优质的产品和优秀的客户服务,以满足客户的需求。作为一家五金零售商,Ace的供应商需要与其进行业务单据的传输。为此,Ace公......
  • Hardbor私有仓库搭建
    准备工作:设置主机名 hostnamectlset-hostnameyuanbao.com设置时间同步yuminstallchrony-ysystemctlenable--nowchronyd关闭防火墙systemctlstopfirewalld&&systemctldisablefirewalld关闭SELINUXsetenforce0sed-i'/^SELINUX=/cSELINU......
  • light oj 1007 Mathematically Hard (欧拉函数)
    题目地址:lightoj1007第一发欧拉函数。欧拉函数重要性质:设a为N的质因数,若(N%a==0&&(N/a)%a==0)则有E(N)=E(N/a)*a;若(N%a==0&&(N/a)%a!=0)则有:E(N)=E(N/a)*(a-1)对于这题来说,首先卡MLE。。只能开一个数组。。所以把前缀和也存到......