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

    你可能感兴趣的文章
    NLP:使用 SciKit Learn 的文本矢量化方法
    查看>>
    nmap 使用方法详细介绍
    查看>>
    nmap使用
    查看>>
    Nmap扫描教程之Nmap基础知识
    查看>>
    nmap指纹识别要点以及又快又准之方法
    查看>>
    Nmap渗透测试指南之指纹识别与探测、伺机而动
    查看>>
    Nmap端口扫描工具Windows安装和命令大全(非常详细)零基础入门到精通,收藏这篇就够了
    查看>>
    NMAP网络扫描工具的安装与使用
    查看>>
    NMF(非负矩阵分解)
    查看>>
    nmon_x86_64_centos7工具如何使用
    查看>>
    NN&DL4.1 Deep L-layer neural network简介
    查看>>
    NN&DL4.3 Getting your matrix dimensions right
    查看>>
    NN&DL4.7 Parameters vs Hyperparameters
    查看>>
    NN&DL4.8 What does this have to do with the brain?
    查看>>
    nnU-Net 终极指南
    查看>>
    No 'Access-Control-Allow-Origin' header is present on the requested resource.
    查看>>
    No 'Access-Control-Allow-Origin' header is present on the requested resource.
    查看>>
    NO 157 去掉禅道访问地址中的zentao
    查看>>
    no available service ‘default‘ found, please make sure registry config corre seata
    查看>>
    No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
    查看>>