引入问题


给你一个长度为nnn的数组,对于里面每一个数求出数组里有多少个数是这个数的约数[除了这个数之外]


解决问题:


逆向思维去枚举质数。


acwing1293

#include <bits/stdc++.h>using namespace std;
const int N = 1e6 + 10;int prime[N], cnt;
int vis[N];
int num[N], a[N], s[N];void init(int n)
{prime[cnt ++] = 1;for(int i = 2; i <= n; ++ i){if(!vis[i])  prime[cnt ++] = i;for(int j = 0;j < cnt && i * prime[j] <= n; ++ j){vis[i * prime[j]] = true;if(i % prime[j] == 0) break;}}
}int main()
{int n;init(N - 1);cin >> n;for(int i = 0; i < n; ++ i) cin >> a[i], num[a[i]] ++;for(int i = 0; i < cnt; ++ i){int p = prime[i];for(int j = p; j <= N - 1; j += p)s[j] += num[p];}for(int i = 0; i < n; ++ i) cout << s[a[i]] - 1 << endl;return 0;
}

求有多少个数是这个数的约数相关推荐

  1. [算法] 求排列组合: 从n个数中任选m个数组成一个新数

    #include <iostream> #include <vector>using namespace std;// 求排列组合算法: C(n, m): 从n个数中任选m个数 ...

  2. 用c语言求1 n的素数个数 给出两种解法,【题目】求n以内的素数个数

    最近在leetCode上刷提,还是满锻炼人的,为以后面试打基础吧.不多说下面开始. 问题:求[2,n]之间的素数的个数. 来源:leetCode OJ 提示: Let's start with a i ...

  3. 求一个数的因子个数/因子和/质因子 C/C++实现

    求一个数的因子个数时间复杂度O√n ll get_number(ll x){ll num=0;for(ll i=1;i*i<=x;i++){if(x%i==0) num+=2; if(i*i== ...

  4. 求二叉树第K层的节点个数+求二叉树叶子节点的个数

    size_t _FindLeafSize(Node* root)     //求二叉树叶子节点的个数     {         //static size_t count = 0;          ...

  5. Coding:取若干个1到n的整数可求和等于整数m,求出所有组合的个数

    要求 给定整数n,取若干个1到n的整数可求和等于整数m,编程求出所有组合的个数.比如当n=6,m=8时,有四种组合:[2,6], [3,5], [1,2,5], [1,3,4].限定n和m小于120. ...

  6. 求二进制数中1的个数

    <<编程之美>>中有这么个题目:对于一个字节的无符号整形变量,求其二进制表达形式中"1"的个数. 基础算法:辗转相除法 辗转相除法是十进制采用的算法,该算法 ...

  7. 容斥原理应用(求1~r中有多少个数与n互素)

    问题:求1~r中有多少个数与n互素. 对于这个问题由容斥原理,我们有3种写法,其实效率差不多.分别是:dfs,队列数组,位运算. 先说说位运算吧: 用二进制1,0来表示第几个素因子是否被用到,如m=3 ...

  8. 31行代码AC——PTA 求二叉树的叶子结点个数 (20分)——解题报告

    励志用尽量少的代码做高效的表达. 以二叉链表作为二叉树的存储结构,求二叉树的叶子结点个数. 输入格式: 输入二叉树的先序序列. 提示:一棵二叉树的先序序列是一个字符串,若字符是'#',表示该二叉树是空 ...

  9. [蓝桥杯][2016年第七届真题]压缩变换(主席树求区间不同数的个数)

    题目描述 小明最近在研究压缩算法. 他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比. 然而,要使数值很小是一个挑战. 最近,小明需要压缩一些正整数的序列,这些序列的特点是,后面 ...

最新文章

  1. NVIDIA与服务器制造商合作推进AI云计算
  2. Sql Server 2005自定义分页
  3. collections中的OrderedDict
  4. Elasticsearch之kopf插件安装之后的浏览详解
  5. android 每分钟广播,每1分钟Android发布一次警报管理器?
  6. 简述php三元运算符的使用,PHP 三元运算符的使用
  7. 不小心删除了系统的GRUB怎么办
  8. Redis性能基准测试
  9. 思岚科技受邀2018高交会 携多项“黑科技”亮相
  10. cw2vec:蚂蚁金服公开最新基于笔画的中文词向量算法
  11. java的swing案例
  12. 「网络流 24 题」负载平衡
  13. 一分钟学会清理垃圾运行命令
  14. spark数据查询语句select_Spark学习之Spark SQL
  15. 悟空问答如何高效引流,这几个技巧让你上首页
  16. mysql 节假日判断_sql 节假日判断(春节、中秋、国庆、周末等)
  17. Flutter FloatingActionButton 及仿闲鱼的发布按钮
  18. windows server 2016 开启多用户登陆
  19. HDU6656 2019 Multi-University Training Contest 7
  20. 工业互联网构筑第四次工业革命的基石

热门文章

  1. Python 为什么用 # 号作注释符?
  2. 这三所985,博士生毕业,不再要求发表论文!
  3. U平方Net:深入使用嵌套的U型结构进行显著目标检测
  4. 栈与队列6——生成最大窗口值数组
  5. [Linux]VI相关操作
  6. Android 应用程序窗体显示状态操作(requestWindowFeature()的应用)
  7. VMware Coding Challenge: Possible Scores Summary: static
  8. Lync server 2010部署及解决方案
  9. Something needs to be forgotten.
  10. uboot、kernel和rootfs烧录