博客
关于我
牛牛的k合因子数
阅读量:558 次
发布时间:2019-03-09

本文共 966 字,大约阅读时间需要 3 分钟。

这篇文章详细解释了如何解决“k合因子数”问题。首先,我们需要生成一个数组a,其中a[i]表示i是否为合数。如果a[i]为0,则i是素数;否则,i是合数。接下来,我们遍历每个数i,然后对于i的每个倍数j,检查j是否为合数。如果j不是素数,那么i是j的一个因子。然后,检查i是否是素数。如果i不是素数,那么i是合数因子;如果i是素数,那么i不会被计入合数因子数。最后,统计每个k对应的合数因子数的出现次数。根据输入的m个k值,输出对应的合数因子数的个数。

代码解析

#include 
#include
using namespace std;int main() { cin >> n >> m; vector
a(n + 1, 0); for (int i = 2; i <= n; ++i) { for (int j = i * i; j <= n; j += i) { if (a[j] == 0 || a[i] != 0) { a[j] += 1; } } } vector
b(n + 1, 0); for (int i = 0; i <= n; ++i) { if (a[i] > 0) { b[a[i]]++; } } for (int _ = 0; _ < m; ++_) { int k; cin >> k; cout << b[k] << endl; }}

代码解释

  • 输入处理:首先读取输入的n和m,分别表示范围和查询次数。
  • 生成合数数组a:初始化一个长度为n+1的数组a,初始值为0。通过双重循环标记合数:对于每个数i,标记其平方及更大的倍数j为合数。
  • 统计合数因子数:统计每个数的合数因子数。对于每个数i,遍历其倍数j,如果j是合数且i是合数,则计数。
  • 统计结果:根据合数因子数统计结果,回答每个查询。
  • 输出:输出每个k对应的合数因子数的个数。
  • 转载地址:http://ayoiz.baihongyu.com/

    你可能感兴趣的文章
    Mysql Innodb 锁机制
    查看>>
    MySQL InnoDB中意向锁的作用及原理探
    查看>>
    MySQL InnoDB事务隔离级别与锁机制深入解析
    查看>>
    Mysql InnoDB存储引擎 —— 数据页
    查看>>
    Mysql InnoDB存储引擎中的checkpoint技术
    查看>>
    Mysql InnoDB存储引擎中缓冲池Buffer Pool、Redo Log、Bin Log、Undo Log、Channge Buffer
    查看>>
    MySQL InnoDB引擎的锁机制详解
    查看>>
    Mysql INNODB引擎行锁的3种算法 Record Lock Next-Key Lock Grap Lock
    查看>>
    mysql InnoDB数据存储引擎 的B+树索引原理
    查看>>
    mysql interval显示条件值_MySQL INTERVAL关键字可以使用哪些不同的单位值?
    查看>>
    mysql problems
    查看>>
    MySQL replace函数替换字符串语句的用法(mysql字符串替换)
    查看>>
    mysql workbench6.3.5_MySQL Workbench
    查看>>
    MySQL Workbench安装教程以及菜单汉化
    查看>>
    MySQL Xtrabackup 安装、备份、恢复
    查看>>
    mysql [Err] 1436 - Thread stack overrun: 129464 bytes used of a 286720 byte stack, and 160000 bytes
    查看>>
    MySQL _ MySQL常用操作
    查看>>
    MySQL – 导出数据成csv
    查看>>
    MySQL —— 在CentOS9下安装MySQL
    查看>>
    mysql 不区分大小写
    查看>>