博客
关于我
牛牛的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面试题学校三表查询_mysql三表查询分组后取每组最大值,mysql面试题。
    查看>>
    mysql颠覆实战笔记(八)--mysql的自定义异常处理怎么破
    查看>>
    MYSQL高可用集群MHA架构
    查看>>
    MySQL高级-MySQL并发参数调整
    查看>>
    MySQL高级-SQL优化步骤
    查看>>
    MySQL高级-视图
    查看>>
    mysql高级查询~分页查询
    查看>>
    MySQL:判断逗号分隔的字符串中是否包含某个字符串
    查看>>
    nacos config
    查看>>
    Nacos原理
    查看>>
    Nacos在双击startup.cmd启动时提示:Unable to start embedded Tomcat
    查看>>
    Nacos安装教程(非常详细)从零基础入门到精通,看完这一篇就够了
    查看>>
    Nacos配置中心集群原理及源码分析
    查看>>
    nacos配置自动刷新源码解析
    查看>>
    Nacos集群搭建
    查看>>
    nacos集群搭建
    查看>>
    nagios安装文档
    查看>>
    name_save matlab
    查看>>
    Nami 项目使用教程
    查看>>
    NAT-DDNS内网穿透技术,解决动态域名解析难题
    查看>>