分解质因数答疑

简介: 为什么n % i == 0就是质数因为在枚举到i之前已经把n中2到i-1的质因子除干净了,此时n中不含2到i-1的质因子,由于n为i的倍数,所以i中也不包含2到i-1的质因子。如果i可以整除前面的i - 1中的数那么i = x * (i - 1),n = x2 * (x * (i - 1));矛盾了为什么只需要枚举到根号N

什么是分解质因数:

题目描述:

输入样例:

2
6
8

输出样例:

2 1
3 1
2 3

思路:

为什么只需要枚举到根号N

为什么n % i == 0就是质数

因为在枚举到i之前已经把n中2到i-1的质因子除干净了,此时n中不含2到i-1的质因子,由于n为i的倍数,所以i中也不包含2到i-1的质因子。如果i可以整除前面的i - 1中的数那么i = x * (i - 1),n = x2 * (x * (i - 1));

矛盾了

代码:

#include <iostream>
using namespace std;
void divide(int n)
{
    for (int i = 2; i <= n / i; i++) 
        {
            if (n % i == 0)
            {
                int s = 0;
                while (n % i == 0)
                    {
                        n /= i;
                        s++;
                    }
                cout << i << " " << s << endl;
            }    
        }
    //单独处理大于根号N的质因数
    if (n > 1)  cout << n << " " << 1 << endl;
    cout << endl;
}
int main()
{
    int n;
    cin >> n;
    while (n--)
        {
            int x;
            cin >> x;
            divide(x);
        }
    return 0;
}
目录
相关文章
|
SQL 监控 关系型数据库
MySQL怎么全局把一张表的数据回滚
MySQL怎么全局把一张表的数据回滚
1235 2
|
Arthas Cloud Native Java
是谁在调用我?使用 arthas+jprofiler 做复杂链路分析
Arthas 是阿里巴巴开源的应用诊断利器,提供了 profiler 命令,可以生成热点火焰图。通过采样录制调用链路来做性能分析,极大提升了线上排查性能问题的效率。
是谁在调用我?使用 arthas+jprofiler 做复杂链路分析
|
分布式计算 资源调度 大数据
【决战大数据之巅】:Spark Standalone VS YARN —— 揭秘两大部署模式的恩怨情仇与终极对决!
【8月更文挑战第7天】随着大数据需求的增长,Apache Spark 成为关键框架。本文对比了常见的 Spark Standalone 与 YARN 部署模式。Standalone 作为自带的轻量级集群管理服务,易于设置,适用于小规模或独立部署;而 YARN 作为 Hadoop 的资源管理系统,支持资源的统一管理和调度,更适合大规模生产环境及多框架集成。我们将通过示例代码展示如何在这两种模式下运行 Spark 应用程序。
711 3
|
缓存 负载均衡 应用服务中间件
Nginx安装与使用: Nginx之编译安装的nginx加入systemctl、Nginx命令
Nginx安装与使用: Nginx之编译安装的nginx加入systemctl、Nginx命令
507 0
|
存储 Oracle NoSQL
【赵渝强老师】Oracle的体系架构
Oracle数据库的核心在于其体系架构,主要包括数据库与实例、存储结构、进程结构和内存结构。数据库由物理文件组成,实例则是内存和进程的组合。存储结构分为逻辑和物理两部分,进程结构涉及多个后台进程如SMON、PMON、DBWn等,内存结构则包含SGA和PGA。掌握这些知识有助于更好地管理和优化Oracle数据库。
385 7
|
SQL Oracle 安全
免费 Oracle 各版本 离线帮助使用和介绍
免费 Oracle 各版本 离线帮助使用和介绍
305 2
|
存储 前端开发 JavaScript
高级前端必备技能
【8月更文挑战第17天】高级前端必备技能
317 1
在Linux中,哪些命令可以管理系统服务,如启动、停止、重启一个服务?
在Linux中,哪些命令可以管理系统服务,如启动、停止、重启一个服务?
|
缓存 前端开发 JavaScript
云LIS系统源码 B/S架构,SaaS模式,可扩展性强
云LIS系统源码 B/S架构,SaaS模式,可扩展性强
256 0
|
NoSQL Redis
Another Redis Desktop Manager 连接Redis(哨兵模式)
Another Redis Desktop Manager 连接Redis(哨兵模式)
1092 1

热门文章

最新文章