当前位置:网站首页>(lightoj - 1370) Bi shoe and phi shoe (Euler function tabulation)
(lightoj - 1370) Bi shoe and phi shoe (Euler function tabulation)
2022-07-06 16:23:00 【AC__ dream】
Topic link :Bi-shoe and Phi-shoe - LightOJ 1370 - Virtual Judge
give n A sequence of numbers a[], For each number ai Find an Euler function whose value is greater than or equal to ai Number of numbers bi, Find all the numbers found bi The sum of the minimum values of sum( Euler function is specified here 1 The value of is 0)
Input
Yes T(T<=100) Group data , Each set of data has two lines , The first line gives n(n<=10000) The second line gives the length n Sequence a[],ai The value range of is [1,1000000]
Output
Output a number sum
Sample Input
3
5
1 2 3 4 5
6
10 11 12 13 14 15
2
1 1
Sample Output
Case 1: 22 Xukha
Case 2: 88 Xukha
Case 3: 4 Xukha
analysis : This problem is to examine the Euler function and make a table , If you don't know this, you can check my previous blog , It introduces in detail the principle of Euler function table , Here is the blog address : Euler function method and its basic application _AC__dream The blog of -CSDN Blog _ Euler function method
When we find the Euler function of all numbers , We can directly check the table , Here we can use a greedy thought , First of all, we can know from the definition of Euler function , The Euler function value is greater than x The number of must be greater than x, So every time we look up the first Euler function, the value is greater than a[i] The number of hours can be from a[i] Start looking up the table , Before checking the table, we can check a Array to sort , This will play an optimization role to a certain extent , Then check the table in an increasing order , Here is the code :
#include<cstdio>
#include<iostream>
#include<cstring>
#include<vector>
#include<algorithm>
#include<map>
#include<cmath>
#include<queue>
using namespace std;
const int N=1000005;// There must be an Euler function greater than 1000000 Number of numbers , Including prime numbers 1000003 that will do
bool vis[N];
int prime[N],o[N],cnt,a[N];
void init()
{
o[1]=0;// Default in this question 1 The Euler function of is 0
for(int i=2;i<N;i++)
{
if(!vis[i])
{
prime[++cnt]=i;
o[i]=i-1;
}
for(int j=1;j<=cnt&&i*prime[j]<N;j++)
{
vis[i*prime[j]]=true;
if(i%prime[j]==0)
{
o[i*prime[j]]=o[i]*prime[j];
break;
}
else
o[i*prime[j]]=o[i]*(prime[j]-1);
}
}
}
int main()
{
init();
int T;
cin>>T;
for(int _=1;_<=T;_++)
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
sort(a+1,a+n+1);
int pos=a[1];
long long ans=0;
for(int i=1;i<=n;i++)
{
while(o[pos]<a[i]) pos++;
ans+=pos;
}
printf("Case %d: %lld Xukha\n",_,ans);
}
return 0;
}
边栏推荐
- D - function (HDU - 6546) girls' competition
- Socket communication
- Auto. Getting started with JS
- Problem - 1646C. Factorials and Powers of Two - Codeforces
- Interesting drink
- Nodejs crawler
- 1855. Maximum distance of subscript alignment
- Alice and Bob (2021 Niuke summer multi school training camp 1)
- Openwrt build Hello ipk
- Local visualization tools are connected to redis of Alibaba cloud CentOS server
猜你喜欢
C language learning notes
Share an example of running dash application in raspberry pie.
B - Code Party (girls' competition)
Vs2019 initial use
7-1 understand everything (20 points)
力扣——第298场周赛
It is forbidden to trigger onchange in antd upload beforeupload
QT realizes window topping, topping state switching, and multi window topping priority relationship
Determine the Photo Position
The "sneaky" new asteroid will pass the earth safely this week: how to watch it
随机推荐
Codeforces Round #800 (Div. 2)AC
MariaDB的安装与配置
1855. Maximum distance of subscript alignment
1529. Minimum number of suffix flips
读取和保存zarr文件
(POJ - 3579) median (two points)
Specify the format time, and fill in zero before the month and days
快速转 TypeScript 指南
C language is the watershed between low-level and high-level
1013. Divide the array into three parts equal to and
2027. Minimum number of operations to convert strings
QT实现窗口渐变消失QPropertyAnimation+进度条
顺丰科技智慧物流校园技术挑战赛(无t4)
Find 3-friendly Integers
Codeforces Round #803 (Div. 2)A~C
Codeforces Round #800 (Div. 2)AC
AcWing:第58场周赛
力扣——第298场周赛
Opencv learning log 26 -- detect circular holes and mark them
Date plus 1 day