博客
关于我
牛牛的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/

    你可能感兴趣的文章
    Myeclipse常用快捷键
    查看>>
    MyEclipse更改项目名web发布名字不改问题
    查看>>
    MyEclipse用(JDBC)连接SQL出现的问题~
    查看>>
    mt-datetime-picker type="date" 时间格式 bug
    查看>>
    myeclipse的新建severlet不见解决方法
    查看>>
    MyEclipse设置当前行背景颜色、选中单词前景色、背景色
    查看>>
    Mtab书签导航程序 LinkStore/getIcon SQL注入漏洞复现
    查看>>
    myeclipse配置springmvc教程
    查看>>
    MyEclipse配置SVN
    查看>>
    MTCNN 人脸检测
    查看>>
    MyEcplise中SpringBoot怎样定制启动banner?
    查看>>
    MyPython
    查看>>
    MTD技术介绍
    查看>>
    MySQL
    查看>>
    MySQL
    查看>>
    mysql
    查看>>
    MTK Android 如何获取系统权限
    查看>>
    MySQL - 4种基本索引、聚簇索引和非聚索引、索引失效情况、SQL 优化
    查看>>
    MySQL - ERROR 1406
    查看>>
    mysql - 视图
    查看>>