首页 > 编程语言 >算法学习

算法学习

时间:2024-02-03 09:16:06浏览次数:33  
标签:约数 int res 个数 学习 算法 include

今天学习了约数的个数怎么求,一般的算法会超时。这时我们需要用到一个定理:p=[n/i]:表示在[1,n]的区间内,有约数i的个数为p个。所以这时,在求约数个数的问题上,我们只需要遍历[1,n],设置一个计数器即可。

当n很大时,跨越太大,这时i++、就会很慢,设置j = n/ (n/i)+1;下一次让i = j;这样跨度较大,时间复杂度较小。

参考资料:http://t.csdnimg.cn/TYwdJ

代码实现:

#include<iostream>
#include<cstdio>

using namespace std;

int main() {
int n;
cin >> n;
int res = 0;
int i, j;
for (i = 1; i <= n; i = j) {
j = n / (n / i) + 1;
res += (n / i ) * (j - i);

}
cout << res << endl;
return 0;
}

 

标签:约数,int,res,个数,学习,算法,include
From: https://www.cnblogs.com/azwz/p/18004034

相关文章

  • 基础模板/算法
    线性筛求素数#include<bits/stdc++.h>usingnamespacestd;constintN=5e7+50;intn,tot,prime[N];//prime存储所有素数boolflag[N];//判断是否为素数intmain(){scanf("%d",&n);//初始化,flag全部置为truefor(inti=1;i<=n;i++)fl......
  • NTFS文件系统支持功能 尽量完整完善资料,让后面学习的人少走弯路 欢迎补充
    NTFS文件系统支持以下功能:NTFS权限,EFS加密,磁盘限额,压缩,卷影副本,NTFS(NewTechnologyFileSystem)是Windows操作系统中的一种现代文件系统,它支持多种先进的功能以确保数据的安全性、可靠性和高效性。以下是NTFS文件系统支持的主要功能:安全性:NTFS提供了高级的文件和文件夹权限设置,可......
  • 运输层的TCP与UDP协议(学习笔记)
    一、运输层1.逻辑通信结构2.端口号、复用与分用二、TCP与UDP的区别1.概览图2.用户数据报协议UDP(UserDatagramProtocol)UDP面向应用层报文,可以在任何时候发起传输(无连接),向上层提供不可靠传输服务,即如果传输过程中出现误码,也不会触发重传。可以支持一对一、......
  • GS学习——初体验
    GaussianSplatting测试了一个精灵4无人机飞的MOV格式视频,重建效果如下:  对应的ply点云效果如图:采用神经隐式表达的场景,稠密点云应该不再是重要的了。信息隐含在神经网络中,通过function计算,需要哪一个视场动态合成了。 ......
  • Python数据结构与算法03-单循环链表
    单循环链表classListNode:def__init__(self,val,next=None):self.val=valself.next=nextclassSingleLoopLinkList:def__init__(self,node=None):self.__head=nodeifnode:#如果不是空链表node.next=node......
  • 人工智能(第3版) 第三章—学习笔记
    人工智能(第3版)第三章—学习笔记知情搜索(informedsearch,也称有信息搜索)利用启发式方法,通过限定搜索的深度或宽度来缩小问题空间。3.0引言介绍了本章的主要内容与几个重要的概念。3.1启发式方法乔治·波利亚——“启发式方法之父”​启发式方法的目的是大幅度减少到......
  • Python 机器学习 K-近邻算法 KD树
    在使用K-近邻(KNN)算法时,kd树(k-dimensionaltree)是一种用于减少计算距离次数从而提高搜索效率的数据结构。kd树是一种特殊的二叉树,用于存储k维空间中的数据点,使得搜索最近邻点更加高效。KD树的构造过程是将数据分割成更小的区域,直到每个区域满足特定的终止条件。1、构建KD树在k......
  • 压缩算法_quicklz接口demo
    1quicklz  quicklz是单片机上一个常见的压缩算法,具体原理没有文档和hash表的相关基础我就不去深究了;  只需要将fileSrc.txt放在桌面,代码可以使用vscode的mingw直接编译;2quicklz源码quicklz.h/***quicklz.h*********************************************************......
  • 单源正权最短路径——Dijkstra算法
    目录问题引入思路一览算法原理code问题引入给出n点m边,其中边的权值皆为非负数,要求快速给出一个点到其余点的最短距离思路一览dfs遍历维护最短距离floyd算法算全源最短,但是这玩意时间复杂度O(n3),最多也就1000个点左右主角Dijkstra算法算法原理主要是以源点为根节点逐步构......
  • 基础算法(七)高精度除法模板
    模板如下#include<iostream>#include<vector>#include<algorithm>usingnamespacestd;vector<int>div(vector<int>&A,intB,int&r){vector<int>C;for(inti=0;i<A.size();i++){r=r*10+A[i];......