目录

定义(Meaning)

求出数n的因子个数

求所有的因子之和

举个例子详细说明:

代码样例1:

代码样例2:


定义(Meaning)

又称“自然数唯一分解定理”。任一大于1的自然数都可分解成若干质因数的连乘积,如果不计各质因数的顺序,这种分解是唯一的。

    如:825=3·52·11,100=2^2*5^2。

这样的分解称为 的标准分解式。最早证明是由欧几里得给出的,现代是由陈述证明。此定理可推广至更一般的交换代数和代数数论。

求出数n的因子个数

公式:(1+a1)*(1+a2)*(1+a3)*(1+a4)......*(1+an)

a1,a2,这些分别是素数因子的幂次数

因为当我的a1=3时那我n的因子肯定会有  p1^0  p1^1 p1^2 p1^3 这四个数

然后再和p2的个数搭配起来就是两个数的因子数相乘了   p1^x  可以与  p2^y  随意搭配,所以进行乘法

求所有的因子之和

这个其实也就是和上面这个一样的道理,不过我们求的是和,所以我们要把所有的因子和求出来

公式:(q1^0+q1^1+q1^2.....q1^a1)*(q2^0+q2^1+q2^2.....q2^a2)*........*(qn^0+qn^n+qn^2.....qn^an)

举个例子详细说明:

超级完全数(改编版):

题目描述:

真因子之和等于它本身的数称为完数(或称完全数),例如28的真因子有:1,2,4,7,14并且1+2+4+7+14=28,所以28是完数。
乐乐得到了一些数字n,这些数有的比较大(1<=n<=1e9),他想知道这些数是不是完数

输入格式:

一个正整数N (1<=n<=1e9) 

输出格式:

   如果是完数,输出Y,否则输出N

限制:

空间限制:128MByte
时间限制:1秒

样例:

输入:28
输出:Y

代码样例1:

#include<iostream>
#include<cmath>
using namespace std;
const int N=1e5+100;
int n;int main(){cin>>n;int p=sqrt(n);int sum=0;for(int i=1;i<=p;i++){if(n%i==0){sum+=i;if(n/i!=i){sum+=n/i;}}}if(sum==2*n){cout<<"Y"<<endl;} else cout<<"N"<<endl;return 0;
}

代码样例2:

#include<iostream>
using namespace std;
const int N=1e5+100;
const int M=1e5;
int n;
int nums[N];
int primes[N];
int len;
int main(){nums[1]=1;for(int i=2;i<=M;i++){if(!nums[i]){primes[++len]=i;for(int j=2*i;j<=M;j+=i){nums[j]=1;}}}cin>>n;int sum=1;for(int i=1;i<=len&&primes[i]<=n;i++){if(n%primes[i]==0){int t=1;int base=1;int temp=n;while(temp%primes[i]==0){base*=primes[i];t+=base;temp/=primes[i];}sum*=t;if(sum>2*n){cout<<"N"<<endl;return 0;}}}if(sum==2*n){cout<<"Y"<<endl;return  0;} else cout<<"N"<<endl;return 0;
}

唯一分解定理 详解(C++)相关推荐

  1. gpt最大分区容量_[电脑知识]GUID(GPT)磁盘全局唯一分区表详解

    全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体硬盘的分区表的结构布局的标准.它是可扩展固件接口(EFI)标准(被Intel用于替代个人计算机的BIOS)的一部分 ...

  2. linux 文件唯一标识符,详解Linux中获取全球唯一标示符UUID的方法

    UUID(Universally Unique IDentifiers),全球唯一标示符.它是一个标识系统中的存储设备的字符串,使其确定系统中的所有存储设备. 为什么要使用UUID?因为系统自动分配的 ...

  3. 唯一分解定理(算术基本定理)详解——hdu5248和lightoj1341

    算数分解定理(唯一分解定理): 定义: 任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积 N=P1a1 P2a2P3a3-Pnan,这里P1<P2<P3-& ...

  4. 【文件md5值查看方法详解】:如何获取文件的唯一标识?

    [文件md5值查看方法详解]:如何获取文件的唯一标识? 在日常工作中,我们经常需要检查文件是否被篡改或者验证文件的完整性.而文件的MD5值就是一个很好的选择,因为它可以作为文件的唯一标识.那么,如何获 ...

  5. java唯一并且有序集合_成都汇智动力-Java集合类详解

    原标题:成都汇智动力-Java集合类详解 java中集合类主要有两大分支: (1)Collection (2)Map Collection接口 一个Collection代表一组Object,即Coll ...

  6. Aladdin and the Flying Carpet (素数打表+正整数的唯一分解定理,找因数对)

    题目大意:给两个数a,b,求满足c*d==a且c>=b且d>=b的c,d二元组对数,(c,d)和(d,c)属于同一种情况 题目分析:根据唯一分解定理先将a唯一分解,则a的所有正约数的个数为 ...

  7. 20160203.CCPP体系详解(0013天)

    程序片段(01):数组.c+02.数组初始化语法.c 内容概要:数组 ///01.数组.c #include <stdio.h> #include <stdlib.h>//01 ...

  8. python import io_详解Python IO编程

    文件读写 读文件 try: # windows下utf8 f = open('./README.md', 'r', encoding='utf8', errors='ignore') print(f. ...

  9. uboot引导kernel - 3 -uboot给内核传参详解

    uboot中执行theKernel函数后,kernel正式启动.如下函数,我们发现有3个参数. 1. 参数 0: 2. 参数machid; 如下code 中获取machid, gd是个全局变量. 2. ...

  10. t-top 命令详解

    前言 展示操作系统进程信息.动态得,实时得展示正在运行的操作系统进程信息. 所显示的系统摘要信息的类型以及为进程显示的信息的类型,顺序和大小都是用户可配置的,并且可以使配置在重新启动后保持不变.该程序 ...

最新文章

  1. msdn2010经典查看方式
  2. 设计模式C++实现(7)——观察者模式
  3. 细谈Web框架设计与实现
  4. java坦克大战总体功能设计_java课程设计——坦克大战
  5. 微型计算机系统三层结构,微型计算机系统结构图.doc
  6. sqlserver中能用when_sqlserver中casewhen用法小结
  7. matlab 直方图 拟合,MATLAB 直方图拟合
  8. vs2003转为vs2010的问题
  9. Htmlcssjs 图片轮播,加箭头
  10. Win10桌面图标无法拖动
  11. 如何查看公众帐号粉丝的微信号
  12. google adwords express使用心得
  13. 微信最新授权登录 微信小程序无法弹出授权弹框 open-type getUserInfo获取不到用户信息 授权不弹框
  14. 车牌识别算法实现及其代码实现之一:车牌区域检测
  15. 马哥Linux学习笔记1-2OS及Linux基础知识
  16. 8分钟完成NodeJs爬虫,把JRS小姐姐全部看个遍
  17. 带倍速播放的播放器_带有HTML5的MP3播放器
  18. 低成本免服务器微信小程序源码多功能集合搭建
  19. 苹果13适配充电宝推荐,苹果官方推荐的充电宝
  20. java字符串替换(JAVA字符串替换 里面有美元符号)

热门文章

  1. python学习笔记011——检查变量类型type()
  2. 网络安全联盟推进威胁情报共享的扩张
  3. 用 CSS 隐藏页面元素
  4. struts2.xml中使用chain和redirectAction这两个类型结果(type-result)时,报检查错误(validation)...
  5. C语言里面的 malloc 函数
  6. (十一)ntp时间同步
  7. matlab 乱七八糟求最大值~
  8. ORACLE RESOURCE MANAGER(资源管理器)
  9. 触发C#Button的双击事件
  10. android 播放3gp音频,Android的Media(录音,播放音乐,播放视频等)