数论与图论

数论🎈

筛质数

最普通的筛法O(nlogn):
void get_primes2(){for(int i=2;i<=n;i++){if(!st[i]) primes[cnt++]=i;//把素数存起来for(int j=i;j<=n;j+=i){//不管是合数还是质数,都用来筛掉后面它的倍数st[j]=true;}}
}

诶氏筛法 O(nloglogn):

void get_primes1(){for(int i=2;i<=n;i++){if(!st[i]){primes[cnt++]=i;for(int j=i;j<=n;j+=i) st[j]=true;//可以用质数就把所有的合数都筛掉;}}
}

线性筛O(n)

void get_primes(){//外层从2~n迭代,因为这毕竟算的是1~n中质数的个数,而不是某个数是不是质数的判定for(int i=2;i<=n;i++){if(!st[i]) primes[cnt++]=i;for(int j=0;primes[j]<=n/i;j++){//primes[j]<=n/i:变形一下得到——primes[j]*i<=n,把大于n的合数都筛了就//没啥意义了st[primes[j]*i]=true;//用最小质因子去筛合数//1)当i%primes[j]!=0时,说明此时遍历到的primes[j]不是i的质因子,那么只可能是此时的primes[j]<i的//最小质因子,所以primes[j]*i的最小质因子就是primes[j];//2)当有i%primes[j]==0时,说明i的最小质因子是primes[j],因此primes[j]*i的最小质因子也就应该是//prime[j],之后接着用st[primes[j+1]*i]=true去筛合数时,就不是用最小质因子去更新了,因为i有最小//质因子primes[j]<primes[j+1],此时的primes[j+1]不是primes[j+1]*i的最小质因子,此时就应该//退出循环,避免之后重复进行筛选。if(i%primes[j]==0) break;}}}

试除法判断质数

输入n表示要判断的n个数,接下来输入n个数,判断其是否为质数

#include<bits/stdc++.h>
using namespace std;
int n;
bool isprime(long long a){if(a==1){return 0;}else if(a==2){return 1;}for(int i=2;i<=a/i;i++){//不要用开方或者i*i,开方函数较慢,i*i会越界if(a%i==0){return 0;}}return 1;
}
int main(){cin>>n;while(n--){long long a;cin>>a;if(isprime(a)) cout<<"Yes"<<endl;else cout<<"No"<<endl;}

分解质因数

解题思路:
  • x 的质因子最多只包含一个大于 根号x 的质数。如果有两个,这两个因子的乘积就会大于 x,矛盾。
  • i 从 2 遍历到 根号x。 用 x / i,如果余数为 0,则 i 是一个质因子。
  • s 表示质因子 i 的指数,x /= i 为 0,则 s++, x = x / i 。
  • 最后检查是否有大于 根号x 的质因子,如果有,输出。
#include <iostream>
#include <algorithm>using namespace std;void divide(int x)
{for (int i = 2; i <= x / i; i ++ )//i <= x / i:防止越界,速度大于 i < sqrt(x)if (x % i == 0)//i为底数{int s = 0;//s为指数while (x % i == 0) x /= i, s ++ ;cout << i << ' ' << s << endl;//输出}if (x > 1) cout << x << ' ' << 1 << endl;//如果x还有剩余,单独处理cout << endl;
}
{
int main()
{int n;cin >> n;while (n -- ){int x;cin >> x;divide(x);}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/656630.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wordpress连接azure MySQL

申请了免费试用Azure mysql&#xff0c;机器名mysql8-wordpress.mysql.database.azure.com&#xff0c;修改wordpress配置 wp-config.php /** Database username */ define( DB_USER, myblog ); /** Database password */ define( DB_PASSWORD, password ); /** Database h…

Qt知识点总结

将枚举类型转换为字符串 这里使用的在网络编程中&#xff0c;获取socket状态并显示的时候&#xff0c;遇到的一个问题 #include <QMetaEnum>// 将枚举类型转换为字符串 QMetaEnum metaEnum QMetaEnum::fromType<QAbstractSocket::SocketState>(); const char *c…

计算机网络之NAT

NAT&#xff08;网络地址转换&#xff0c;Network Address Translation&#xff09;是一种网络技术&#xff0c;用于在一个网络与另一个网络之间重新映射IP地址。NAT最常见的应用是在家庭和小型办公室的路由器中&#xff0c;用于将私有&#xff08;内部&#xff09;IP地址转换为…

CCF-CSP 202312-1 仓库规划(Java、C++、Python)

文章目录 仓库规划问题描述输入格式输出格式样例输入样例输出子任务 满分代码JavaCPython 仓库规划 问题描述 西西艾弗岛上共有 n n n 个仓库, 依次编号为 1 ⋯ n 1 \cdots n 1⋯n 。每个仓库均有一个 m m m 维向量的位置编码, 用来表示仓库间的物流运转关系。 具体来说,…

centos7常用命令之安装插件1

虚拟机VM要卸载&#xff0c;在这记录下&#xff01;&#xff01;&#xff01; 1、关机、重启 init 0 关机 init 6 重启 2、docker 1.启动docker服务 systemctl start docker 2.查看是否docker启动成功 systemctl status docker 3.停止docker服务 systemctl stop docker #查看全…

ID3算法 决策树学习 Python实现

算法流程 输入&#xff1a;约束决策树生长参数&#xff08;最大深度&#xff0c;节点最小样本数&#xff0c;可选&#xff09;&#xff0c;训练集&#xff08;特征值离散或连续&#xff0c;标签离散&#xff09;。 输出&#xff1a;决策树。 过程&#xff1a;每次选择信息增益…

UDS诊断服务介绍之31服务(强控服务)

目录 一、功能描述 二、应用场景 三、31服务控制基本原理: 四、服务请求

全新魅思V20正规视频影视系统源码/APP+H5视频影视源码

全新魅思V20正规视频影视系统源码&#xff0c;APPH5视频影视源码。会员花费三千购入的&#xff0c;具体搭建教程放压缩包了&#xff01; 有兴趣的下载自行研究吧&#xff0c;搭建一共要用到3个域名&#xff0c;可以拿二级域名搭建。

系统学习Python——装饰器:类装饰器-[初探类装饰器和元类]

分类目录&#xff1a;《系统学习Python》总目录 函数装饰器是如此有用&#xff0c;以至于Python2.X和Python3.X都扩展了这一模式&#xff0c;允许装饰器应用于类和函数。简而言之&#xff0c;类装饰器类似于函数装饰器&#xff0c;但它们是在一条class语句的末尾运行&#xff0…

OpenHarmony—环境准备

JS SDK安装失败处理指导 问题现象 下载JS SDK时&#xff0c;下载失败&#xff0c;提示“Install Js dependencies failed”。解决措施 JS SDK下载失败&#xff0c;一般情况下&#xff0c;主要是由于npm代理配置问题&#xff0c;或未清理npm缓存信息导致&#xff0c;可按照如…

方案|AI智能监控如何从区域入侵与摄像头异常方面助力野外农场安全监管

大家都知道&#xff0c;旭帆科技的AI分析算法在监控中的应用十分广泛&#xff0c;除了常见的人体事件、行为事件、着装、车辆等算法&#xff0c;摄像头异常检测也十分重要。近期就有一个用户在我们这定制了一个野外摄像头异常检测算法系统。 方案需求 该用户的需求为需要在自己…

java8 查找和匹配方法(`anyMatch`)(`allMatch`、`noneMatch`)(`findAny`)(`findFirst`)

5.3 查找和匹配 5.3.1 检查谓词是否至少匹配一个元素&#xff08;anyMatch&#xff09; anyMatch方法可以回答“流中是否有一个元素能匹配给定的谓词”。 boolean anyMatch(Predicate<? super T> predicate);// 菜单里面是否有素食可选择 if(menu.stream().anyMatc…

上博东馆古蜀文明展,文物保护系统移动端与离线设备齐上阵

一、上博东馆古蜀文明展开展 备受瞩目的“星耀中国&#xff1a;三星堆金沙古蜀文明展”文物悉数到位。这是我国较大、最完整的古蜀文明展览&#xff0c;将在2月2日在博物馆开放“三部曲”。展览由上海博物馆和全国28家文化考古机构共展出363件/套文物。在如此重要的展览中&…

Powershell Install telegraf 实现Grafana Windows 图形展示

influxd2前言 influxd2 是 InfluxDB 2.x 版本的后台进程,是一个开源的时序数据库平台,用于存储、查询和可视化时间序列数据。它提供了一个强大的查询语言和 API,可以快速而轻松地处理大量的高性能时序数据。 telegraf 是一个开源的代理程序,它可以收集、处理和传输各种不…

HiveSQL题——聚合函数(sum/count/max/min/avg)

目录 一、窗口函数的知识点 1.1 窗户函数的定义 1.2 窗户函数的语法 1.3 窗口函数分类 聚合函数 排序函数 前后函数 头尾函数 1.4 聚合函数 二、实际案例 2.1 每个用户累积访问次数 0 问题描述 1 数据准备 2 数据分析 3 小结 2.2 各直播间最大的同时在线人数 …

Selenium 隐藏浏览器指纹特征的几种方式

我们使用 Selenium 对网页进行爬虫时&#xff0c;如果不做任何处理直接进行爬取&#xff0c;会导致很多特征是暴露的 对一些做了反爬的网站&#xff0c;做了特征检测&#xff0c;用来阻止一些恶意爬虫 本篇文章将介绍几种常用的隐藏浏览器指纹特征的方式 1. 直接爬取 目标对…

CHS_04.2.3.3+互斥锁

CHS_04.2.3.3互斥锁 进程互斥&#xff1a;锁 接下来 用于实现互斥的一种方法 你可以简单理解为 锁就是一个bool的变量 进程互斥&#xff1a;锁 只有true和false或者零和一两种状态分别表示当前已上锁或者没有上锁 有这样的两个函数可以操作锁acquire 这个函数就是上锁获得 锁…

linux -- 中断管理 -- softirq机制

softirq的起始 do_IRQ();--> irq_enter(); //HARDIRQ部分的开始 更新系统中的一些统计量 标识出HARDIRQ上下文--> generic_irq_handler(); --> irq_exit(); //softirq部分的起始irq_exit /** Exit an interrupt context. Process softirqs if needed and possibl…

知识蒸馏(paper翻译)

paper&#xff1a;Distilling the Knowledge in a Neural Network 摘要&#xff1a; 提高几乎所有机器学习算法性能的一个非常简单的方法是在相同的数据上训练许多不同的模型&#xff0c;然后对它们的预测进行平均[3]。 不幸的是&#xff0c;使用整个模型集合进行预测非常麻烦…

操作系统A-第四和五章(存储器)作业解析

目录 1、在请求分页系统中&#xff0c;某用户程序的逻辑地址空间为 16 页&#xff0c;每页 1KB&#xff0c;分配的内存空间为 8KB。假定某时刻该用户的页表如下表所示。 试问&#xff1a;(1)逻辑地址 184BH 对应的物理地址是多少&#xff1f;&#xff08;用十六进制表示&…