首页 > 其他分享 >欧拉函数

欧拉函数

时间:2023-08-15 20:44:04浏览次数:38  
标签:函数 get int double long 欧拉 euler define

怕自己忘记

放道例题

201. 可见的点 - AcWing题库

 

 

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define int long long 
 4 #define double long double
 5 #define ull unsigned long long 
 6 #define QAQ 0
 7 const int N=1e5+1,inf=0x3f3f3f3f,mod=1e7+7;
 8 
 9 int n;
10 bool vis[N];
11 int prime[N],euler[N];
12 
13 void get_euler(int u)
14 {
15     euler[1]=1;//1是任何数的质数
16     int cnt=0;
17     for(int i=2;i<=n;i++)
18     {
19         if(!vis[i])
20         {
21             prime[cnt++]=i;
22             euler[i]=i-1;
23             
24         }
25         for(int j=0;prime[j]<=u/i;j++)
26         {
27             vis[i*prime[j]]=true;
28             if(i%prime[j]==0)
29             {
30                 euler[i*prime[j]]=prime[j]*euler[i];
31                 break;
32             }
33             euler[i*prime[j]]=euler[i]*(prime[j]-1);
34         }
35     }
36 }
37 
38 
39 void solve(int T)
40 {
41 
42     cin>>n;
43     get_euler(n);
44     int res=1;
45     for(int i=1;i<=n;i++)res+=euler[i]*2;
46     cout<<T<<' '<<n<<' '<<res<<'\n';
47 }
48 
49 
50 signed main()
51 {
52     std::ios::sync_with_stdio(false);
53     cin.tie(0),cout.tie(0);
54     int T;
55     cin>>T;
56     for(int i=1;i<=T;i++)solve(i);
57     return QAQ;
58 }
View Code

 

标签:函数,get,int,double,long,欧拉,euler,define
From: https://www.cnblogs.com/cancanneed/p/17632394.html

相关文章

  • QT:打印当前文件名,行号和函数名称
    定义:#include<QDebug>#definemyDebug()qDebug()<<tr("文件名:")<<__FILE__<<tr("行号:")<<__LINE__<<tr("函数名:")<<__FUNCTION__;在函数中执行myDebug()即可:voidMainWindow::doAction......
  • 无涯教程-Perl - setsockopt函数
    描述此函数将SocketoptionsOPTNAME的值设置为SOCKET上指定级别的OPTVAL值。您需要导入Socket模块,以获取Tabl中显示的OPTNAME的有效值语法以下是此函数的简单语法-setsockoptSOCKET,LEVEL,OPTNAME,OPTVAL返回值如果失败,此函数返回undef;如果成功,则返回1。OPTNAME......
  • Linux之脚本的函数数组
    目录一、shell函数1.1函数的定义二、数组三、冒泡一、shell函数将命令序列按格式写在一起可方便重复使用命令序列shell函数的定义调用函数的方法注意事项直接写函数中调用函数直接写函数名同名函数后一个生效调用函数一定要先定义只要先定义了调用的其他......
  • shell函数与数组
    目录shell函数与数组shell函数函数定义函数递归阶乘题目shell数组冒泡排序shell函数与数组shell函数函数定义将命令序列按格式写在一起可方便重复使用命令序列shell函数定义使用函数可以将大模块分割成小模块函数的组成:函数名、函数体[root@localhost~]#helpfuncti......
  • python中 函数中的self是什么?
      self可视为类的实例,在使用类创建实例时,我们可能需要强制传入一些参数。所以一般在构造函数_init_里给实例的属性赋值。classStudent(obiect):def__init__(self,name,score):self.name=nameself.score=scoredefprint_score(self):......
  • 无涯教程-Perl - setpwent函数
    描述此功能将枚举设置(或重置)到密码条目集的开头。应该在第一次调用getpwent之前调用此函数。语法以下是此函数的简单语法-setpwent返回值此函数不返回任何值。例以下是显示其基本用法的示例代码-#!/usr/bin/perlwhile(($name,$passwd,$uid,$gid,$quota,$com......
  • 排名函数rank、dense_rank、row_number
    rank():返回一个连续的排名值,相同的值将具有相同的排名,可能会有空缺。如果存在两个相同的值,则下一个排名与当前值的排名相同,并且下一个排名将相应地增加。使用场景:当需要按照某个特定的列对数据进行排序,但不需要为相同值分配连续的排名时,可以使用rank()函数。 dense_rank():返回......
  • chatGPT用C++写的HMAC-SHA256函数
    以下内容全为chatGPT生成:#include<openssl/hmac.h>#include<openssl/sha.h>#include<iostream>#include<iomanip>std::stringhmac_sha256(conststd::string&key,conststd::string&data){unsignedcharhash[SHA256_DIGEST_L......
  • 无涯教程-Perl - setprotoent函数
    描述该函数应在第一次调用getprotoent之前调用。STAYOPEN参数是可选的,在大多数系统上未使用。当getprotoent()检索协议数据库下一行的信息时,setprotoent会将枚举设置(或重置)为主机条目集的开头。语法以下是此函数的简单语法-setprotoentSTAYOPEN返回值此函数不返回......
  • JavaScript 如何封装一些常见的函数来提高工作效率
    前言为什么要封装函数JavaScript封装函数的主要目的是为了保护代码的安全性和可维护性。封装可以隐藏实现细节:将函数内部的实现细节封装起来,只暴露给外部必要的接口,可以使代码更加安全,防止意外修改或者滥用。封装可以提高代码的可维护性:将功能模块封装成函数,可以使代码更加模......