用记号TN表示1是所有自然数的约数N的约数个数;SN表示N所有约数个数的和。

自然数约数的个数及所有约数的和_中华文本库
第1页/共1页
文本预览:
自然数约数的个数及所有约数的和
我们知道:一个数ɑ,如果能被数 b 整除,b 就是ɑ的约数。 自然数(除了 1 以外)按照约数的多少,可以分成质数与合数两类:质数只有 1 和它自己 两个约数;合数除了 1 和它自己以外,还有其它的约数; 上面这些知识都是非常浅显的,连小学生都知道。殊不知,在这些人们耳熟能详的知识 中,却隐藏着许多饶有兴味的问题。 一、约数的个数 一个数的约数的个数,与这个数由哪些质因数组成有关。 以 12 为例, 分解质因数得到 12=22×3。 在构成 12 的约数时, 质因数 2, 可以取 2 个(即 22=4)、1 个(即 21=2)或者不取(即 20=1),有 3 种方法, “3”比质因数 2 的幂指数“2”多 1;对于质因数 3,可以取 1 个(即 31=3)或者不取(即 30=1),有 2 种方法, “2”比质因数 3 的幂指数“1”多 1。所以,总共可以组成 3×2=6 个约数,分别是 22×31=4×3=12,21× 31=2×3=6,20×31=1×3=3,22×30=4×1=4,21×30=2×1=2,20×30=1×1=1。 推广到一般:如果一个数 N=ɑibj,,ck,其中,ɑ、b、,,、c 是 N 的质因数,i、j、,,、k 是这些质因数的幂指数。 N 的约数的个数等于:(i+1)(j+1),,(k+1) 以 360 为例,360=23×32×5。质因数 2、3、5 的幂指数分别是 3、2、1,所以 360 的约 数有(3+1)(2+1)(1+1)=24 个。 检验:360 的约数有 360、180、120、90、72、60、45、40、36、30、24、20、18、15、 12、10、9、8、6、5、4、3、2、1,共 24 个。 二、约数的总和 仍以 12 为例,12=22×3。根据上面所说的 12 的约数的构成,这些约数的总和等于:22 ×31+21×31+20×31+22×30+21×30+20×30, 化简后得到:(22+21+20)(31+30)。 所以,12 的约数总和等于:(4+2+1)(3+1)=28。 检验:12 的约数有 12、6、4、3、2、1,12+6+4+3+2+1=28。 推广到一般,如果一个数 N=ɑibj,,ck,其中ɑ、b、,,、c 是 N 的质因数,i、j、,,、k 是这些质因数的幂指数。 N 的约数总和等于: (ɑi+ɑi-1+ɑi-2+,,+ɑ+1)(bj+bj-1+bj-2+,,+b+1),,(ck+ck-1+ck-2+,,+c+1) 这个结果可以化简: 由恒等式(x-1)(xn-1+xn-2+,,+x+1)=xn-1 推知,(x-1)(xn+xn-1+,,+x+1)=xn+1 -1,
第1页/共1页
寻找更多 ""从1开始的连续n个自然数相加,其和是一共有12个约数的三位数,这个三位数最大是_百度知道
从1开始的连续n个自然数相加,其和是一共有12个约数的三位数,这个三位数最大是
这个三位数最大是:8201+2+……+39+40=820,有12个约数
来自团队:用c++编写给定一个正整数N,请求出它所有约数的和。_百度知道
用c++编写给定一个正整数N,请求出它所有约数的和。
一个正整数N(1≤N≤500000):多组测试数据(不多于500000组),一个正整数S:每组数据输出一行,每组数据输入一行:表示N的约数之和。输入直至文件结尾。输出。样例输入
提问者采纳
&&0)&&&&&0;&&&return&i&&n;&&&&&using&=&+=&&&&&if(n&&&int&int&}&&&&i;&&int&&&&for(int&=n;&&n){&&&i&&&iostream&&&&main(){&&&&s&&&&&0;&s&}&&&&&&s&&&&cout&&&&&nbsp#include&&i++){&&&&&&&&&namespace&&&&&==&&&&&while(cin&&i=1;}运行结果;%&nbsp
要的是连续输入多组数据才能输出多组结果
一般ACM竞赛都是这么处理的。。。“每组数据输出一行”就可以了。。。。。你可以看下zoj,poj,hdoj对多组数据的处理。。。
好吧,ACM真尼玛坑爹,原来这么简单,气死我了,为了这个输入输出花了我一天都没想出来,看来是我想太多
ACM,也不是很难,加油!!!
提问者评价
来自团队:
其他类似问题
为您推荐:
约数的相关知识
其他1条回答
#include&&nbsp.size(),&cstring&
printf(&i;i++)&int&
for(i=0;N,&存入对应的vector中& for(i=1;j*i&//初始化所有数的约数&&N;&i;iostream&&ve[n].push_back(i);//初始化约数&;n;500005vector&&ans=0;j;&ve[N];&lt,&n)==1){
int&&init(){&i++){
for(j=1;N&algorithm&cstdio&gt,&,&%d&
} }}main(){ int&nbsp,ans)&&&t;&lt,把其约数相加&#include&;#include&queue&%d\n&i&k;&using& int&&j++){
ve[j*i];#include&&&//对于输入n;& init();&&#define&vector&i&#include&namespace&&&&ans+=ve[n][i];&void& while(scanf(&&&&&nbsp#include&nbsp
要的是连续输入多组数据才能输出多组结果
这下行了吧:#include&&cstdio&#include&&cstring&#include&&algorithm&#include&&iostream&#include&&vector&#include&&queue&using&namespace&#define&N&500005vector&int&ve[N];int&ans[N];void&init(){&&&&&&&&&&&//初始化所有数的约数&存入对应的vector中& int&i,&j,&k; for(i=1;i&N;i++){
for(j=1;j*i&N;j++){
ve[j*i].push_back(i);
} }}main(){ int&t,&n,&i; init();&&&&//初始化约数& int&k=0;& while(scanf(&%d&,&n)==1){
int&num=0;&
for(i=0;i&ve[n].size();i++)&num+=ve[n][i];&&&&&//对于输入n,把其约数相加&
ans[k++]=&&&//把每组答案存入ans中& } for(i=0;i&k;i++)&printf(&%d\n&,ans[i]);&&//输出ans&}&楼上那个人说的对 ,ACM中两种输出方法:在线和离线,第一个代码是在线的,这个是离线的,在ACM中都可以,系统都判对的。好吧,楼主不采纳我的。。。我这代码是经过优化的 ,他的那个代码可能超时。。。
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁求具有15个约数的最小自然数N,并求这个自然数的15个约数之和?_作业帮
拍照搜题,秒出答案
求具有15个约数的最小自然数N,并求这个自然数的15个约数之和?
求具有15个约数的最小自然数N,并求这个自然数的15个约数之和?
答:具有15个约数的最小自然数N为360360.
15个约数之和=1+2+.+15=120
15=1x15=3x5(2的四次方)x(3的平方)最小,=144和=(1+2+4+8+16)+3x(1+2+4+8+16)+3x3x(1+2+4+8+16)
=(1+2+4+8+16)x(1+3+9)=403求教数学题,自然数N有很多个约数,把它的这些约数两两求和得到一组新数,其中最小的为4,最大的为196,N有 个约数._作业帮
拍照搜题,秒出答案
求教数学题,自然数N有很多个约数,把它的这些约数两两求和得到一组新数,其中最小的为4,最大的为196,N有 个约数.
求教数学题,自然数N有很多个约数,把它的这些约数两两求和得到一组新数,其中最小的为4,最大的为196,N有 个约数.
自然数n,最小的约数为1,最大的约数为n那么第二小的约数为:4-1=3n为第二大约数的3倍第二大的约数为:196÷(3+1)=49n=3×49=3×7×7n的约数一共有:(1+1)×(2+1)=6个 由已知条件得自然数N的最小两个约数为1和3而最大的两个约数和为196,且两个数中较大的数与1的乘积应该等于较小的数与3的乘积,所以这两个数为49和147,所以自然数N为147147的约数有:1,3,7,21,49,147所以答案是:6个 最小约数是1,那么第二小约数应该是4-1=3最大约数是它本身,根据第二小约数是3,得到第二大约数应该是它的1/3那么这个数是196/(1+1/3)=147147的约数有:1,196;3,49;7,21共6个假设最小的两个约数是a和b 最大的两个是y和z那么a+b=4 y+z=196显然a=1 b=3 又因为a*z=b*y 即z=3y 所以y=49 z=147由此得出N=147所以147的约数就有1 3 7 21 49 147 总共6个约数
由已知条件得自然数N的最小两个约数为1和3而最大的两个约数和为196,且两个数中较大的数与1的乘积应该等于较小的数与3的乘积,所以这两个数为49和147,所以自然数N为147147的约数有:1,3,7,21,49,147所以答案是:6个
自然数n,最小的约数为1,最大的约数为n那么第二小的约数为:4-1=3n为第二大约数的3倍第二大的约数为:196÷(3+1)=49n=3×49=3×7×7n的约数一共有:(1+1)×(2+1)=6个
最小约数是1,那么第二小约数应该是4-1=3最大约数是它本身,根据第二小约数是3,得到第二大约数应该是它的1/3那么这个数是196/(1+1/3)=147147的约数有:1,196;3,49;7,21共6个
假设最小的两个约数是a和b 最大的两个是y和z那么a+b=4
y+z=196显然a=1 b=3
又因为a*z=b*y 即z=3y
所以y=49 z=147由此得出N=147所以147的约数就有1 3 7 21 49 147 总共6个约数
已知自然数N的最小两个约数为1和3而最大的两个约数和为196,所以这两个数为49和147,所以自然数N为147147的约数有:1,3,7,21,49,147,N所以答案是:7个
应该是6吧,不太确定。…………
n应该是149。你自己就可以算有几个约数了吧。
自然数n,最小的约数为1,最大的约数为n那么第二小的约数为:4-1=3n为第二大约数的3倍第二大的约数为:196÷(3+1)=49n=3×49=3×7×7n的约数一共有:(1+1)×(2+1)=6个答案是6个 O(∩_∩)O}

我要回帖

更多关于 自然数包括0吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信