质因子分解——Prime Factors

摘要:
首先,非质数有两种情况:1.所有质数都小于或等于sqrt(n)2.只有一个质数大于sqrt(n),而其他质数小于sqrt(m)。如果有一个以上的素因子大于sqrt(n),则这些因子的乘积……以下代码在此使用结构。当然,也可以使用数组结构因子{intx;//记录素因子intcnt;//素因子的数量}fac[10];2 3 5 7

先上原理

对于一个非素数来说有两种情况

1,所有质因子小于等于sqrt(n)

2,只存在一个大于sqrt(n)的质因子,其他质因子都小于sqrt(n)

至于证明,可以用反证法。

若是有多余一个大于sqrt(n)的质因子,这些因子的乘积.....

下面上代码

这里借助一个结构体,当然你也可以用数组

struct factor {
    int x;//记录素因子
    int cnt;//素因子的个数
}fac[10];

2  3  5  7  11  13  17  19  23  29

以上10个素数的乘积已经超过了int的表示范围

故而结构体数组只开了10个

int prime_num;//质因子的个数
void prime_fac(int n)
{
    for(int i=0;i<=sqrt(n);i++)
    {
        if(n%prime[i]==0)
        {
            fac[prime_num].x=prime[i];
            while(n%prime[i]==0)
            {
                fac[prime_num].cnt++;
                n=n/prime[i];
            }
            prime_num++;
        }
    }
    if(n!=1)
    {
        fac[prime_num].x=n;
        fac[prime_num].cnt=1;
        prime_num++;
    }
}

该函数执行结束,fac结构体数组中就是质因子的分解结果

免责声明:文章转载自《质因子分解——Prime Factors》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Mapbox常用表达式整理各种数据分析工具所能处理的数据量大概是多少?下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MongoDB 高级查询_aggregate聚合管道

MongoDB 聚合管道(AggregationPipeline) 使用聚合管道可以对集合中的文档进行变换和组合。实际项目应用主要是表关联查询、数据的统计。 MongoDB 中使用 db.COLLECTION_NAME.aggregate([{<stage>},...]) 方法 来构建和使用聚合管道。下面是官网给的实例,感受一下聚合管道的用法。...

ESP32开发(2)esp32-cam采集图像

ESP32-CAM摄像头开发板 USB转串口下载器 杜邦连接线若干        注意:GPIO0连接GND(下拉)的作用是让ESP32-CAM进入下载启动模式,这个模式里,才能利用Arduino IDE给ESP32编程,否则IDE会报错,代码烧录完成后,我们需要断开GPIO0和GND的连接,让ESP32进入正常的内存启动模式。 配置ESP32环...

react 实现圆环进度条

import React, { useState, useEffect } from "react" import { css } from "emotion" //num是从父级传来的百分比数值 export default function({ num }) { let rightTrnas = css` transform: rotate(0deg)...

连通性

无向图的联通分量 割点:在一个联通分量里面有一些关键点,如果删除它,会把这个联通分量分为更多。 割边——双连通问题 有多少个割点:DFS,深搜优先生成树 对任意一个点s做DFS,生成一棵树 1)如果树的根节点s有两个或更多的孩子:s是割点 2)T的非根节点u是割点:当且仅当u存在一个子节点v,v及其后代都没有回退边连回u的祖先 HOW:u的直接后代v,数组...

GDB调试教程

简介   GDB(GNU debugger)是GNU开源组织发布的一个强大的UNIX下的程序调试工具。可以使用它通过命令行的方式调试程序。它使你能在程序运行时观察程序的内部结构和内存的使用情况。你也可以使用它分析程序崩溃前的发生了什么,从而找出程序崩溃的原因。相对于windows下的图形界面的VC等调试工具,它提供了更强大的功能。如果想在Windows下使...

Python基础:映射(字典)

一、概述 映射类型(Mapping Types)是一种关联式的容器类型,它存储了对象与对象之间的映射关系。 字典(dict)是Python中唯一的映射类型,它是存储了一个个 键值对(由 键 映射到 值)的关联容器。其中,键(key)必须是可哈希的Python对象,而 值(value)可以是任何Python对象。在功能上,Python中的字典类似于C++中...