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

基础知识1

目录

1、gcd最大公因数

2、最小公倍数

3、素数问题

①简单数学求法

②素数筛

③线性筛


1、gcd最大公因数

 int gcd(int a,int b){return b==0?a:gcd(b,a%b);}

做题过程中,如果数据太大,需要边做边对分子分母进行约分

2、最小公倍数

 int a,b;scanf("%d %d",&a,&b);int t=a*b/gcd(a,b);   //t为a和b的最小公倍数 printf("%d\n",t);

3、素数问题

①简单数学求法

int isprime(int a){if(a<=1) return 0;if(a==2) return 1;int temp=sqrt(a);   //记得加数学头文件for(int i=2;i<=temp;i++){if(a%i!=0) continue;else return 0;}return 1;}

当题目限制代码运行时间时,就要用素数筛或者欧拉筛

②素数筛

素数筛思想:初始化数组全为0,循环从2开始,把素数的倍数标记为合数,没被标记的就是素数

缺点:存在重复标记,比如6会先被2标记一遍,再被3标记一遍

 #include<stdio.h>#define MAX_N 100​int prime[MAX_N+5]={0};//全部初始化为0void is_prime(){for(int i=2;i<=MAX_N;i++){if(prime[i]) continue; //合数标记为1for(int j=2;j*i<=MAX_N;j++){prime[i*j]=1;//标记素数的倍数为合数}}return;}int main(){is_prime();for(int i=2;i<=MAX_N;i++){if(prime[i]) continue;printf("%d\n",i);}return 0;}

③线性筛

线性筛:比素数筛高效,优化素数筛的重复标记问题

素数筛:一个合数可能被多次标记

线性筛:时间复杂度:O(n) 空间复杂度:O(n)

算法:利用M标记整数N,其中M是除N外最大的因子,N=M*p;

eg:若N=30,则算法中的M、p分别为15,2

若M=25,则算法中的N都有哪些? 50,75,125

找到规律:M%p==0,则M*p=N(最大)

 int prime[MAX_N+1]={0};void is_prime(){for(int i=2;i<=MAX_N;i++){if(!prime[i]) prime[++prime[0]]=i;for(int j=1;j<=prime[0];j++){if(prime[j]*i>MAX_N) break;prime[prime[j]*i]=1;if(i%prime[j]==0) break;}}return ;}

http://www.lryc.cn/news/457293.html

相关文章:

  • 网页前端开发之Javascript入门篇(9/9):对象
  • Oracle RAC IPC Send timeout detected问题分析处理
  • QT 实现QMessageBox::about()信息自定义显示
  • (C++进阶)C++20
  • 【常用的安装破解版指令】MAC安装破解版软件显示文件损坏时
  • 【QT Quick】定时器和线程:定时器Timer
  • 【NIO基础】NIO(非阻塞 I/O)和 IO(传统 I/O)的区别,以及 NIO 的三大组件详解
  • HDLBits中文版,标准参考答案 | 3.1.3 Arithmetic Circuits | 算术电路
  • 网络编程 websocket
  • 【JDK17 | 5】Java 17 深入剖析:新的随机数生成器 API
  • 剪切走的照片:高效恢复与预防策略
  • 基于XGBoost的结核分枝杆菌的耐药性预测研究【多种机器学习】
  • 【C++差分数组】3229. 使数组等于目标数组所需的最少操作次数|2066
  • 浅谈PyTorch中的DP和DDP
  • 在Windows上利用谷歌浏览器进行视频会议和协作
  • VMware Fusion 13.6.1 发布下载,修复 4 个已知问题
  • P9751 [CSP-J 2023] 旅游巴士
  • 【Linux】man手册安装使用
  • mysql学习教程,从入门到精通,SQL处理重复数据(39)
  • mapbox解决wmts请求乱码问题
  • 《C++职场中设计模式的学习与应用:开启高效编程之旅》
  • Maya动画--基础约束
  • 腾讯云License 相关
  • 开放式耳机什么品牌最好?十大超好用开放式耳机排名!
  • 基于Zynq SDIO WiFi移植二(支持2.4/5G)
  • Spring Boot敏感数据动态配置:深入实践与安全性提升
  • 软考数据库部分 ---- (概念数据库模型,三级模式,两级映像,事物管理)
  • AI 概念大杂烩
  • Composer和PHP有什么关系
  • 【PGCCC】在 Postgres 上构建图像搜索引擎