找回密码
 注册
关于网站域名变更的通知
查看: 950|回复: 1
打印 上一主题 下一主题

求一个数的真因数。

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-5-21 11:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

4 i; Q6 G* K+ e' q
2 v1 M6 Q+ T( o$ b$ M' _这个是一个函数,求一个数的真因数
2 `! v1 V( @5 k0 x3 E4 L- n- N' Xfunction y=myfun(n)
! M+ @/ [2 I, h1 _9 Y/ l1 y' O" E   y1=[];- [# Q9 F8 P! l$ o0 a, A3 H
   for i=1:fix(n/2);
5 j& u& {$ y. @( [/ z2 Z' a' _       if mod(n,i)==0;8 C( K- G. L+ |; c; F
           y1=[y1,i,n/i];9 b0 n, S: c0 _9 j; F; j
       end- l! p: g& z: X1 O8 H- p
   end
8 z( a' J% c6 u* o$ R$ D) q   y=unique(y1);   
3 `1 a, \& A9 V. cend6 B- f3 f& ]9 v# X5 h
然后我用这个函数求1到1000的亲和数对
; d+ V% s. {/ Q, _, e) gfor  a=1:10000;
; K8 }4 \( i7 C! n& V
% p. D/ N! p2 }7 \1 E, }$ m' J  i3 t    b=sum(myfun(a)); %求a的真因数和  为b
1 K# ^: ~! C- S4 t. E1 l8 V- |% B6 h3 Z' U9 E0 Y! Q7 @# q* y
    c=sum(myfun(b)); %求b的真因数和
9 o; Y# a  @& C: e+ r2 J+ \2 O! c% H0 s, _. ?6 \/ Z
      if   c==a  # R: S1 @% r5 W: Z$ ]  s+ ?

' o% s1 w/ h) w9 S          disp(a)                 %如果a的真因数和b的真因数相等  则输出a
* b1 }9 d8 _3 M! ?" i% ?
- f8 ]$ k2 u9 X% f8 A      end5 [* W  Q3 q! t$ Y# I
7 O) J: _9 p- N3 j  m
end  ~/ T# M9 D8 U$ @
5 ]+ J! F. u( {) V" p

! c5 X1 u% v3 Y7 }. [
1 W0 D9 B5 l% l: ~6 Z+ ~9 X& h+ s/ F% Y  Q. z9 w8 h5 N0 I2 F9 s
    但是他不输出任何数,
' w' N" ]7 R- g3 K附上亲和数对
) E7 o9 X; m) C+ [' [亲和数是这样一对正整数a和b,使得a的所有真因子的和等于b,而b的所有真因子的和等于a。* O  A; C+ i# |. F
就是220的真因子是1、2、4、5、10、11、20、22、44、55、110,它们的和是284;284的真因子是1、2、4、71、142,其和恰好是220。这是一对亲和数。. Z( `! H* r/ P; r/ z
请教大神,非常感谢!

该用户从未签到

2#
发表于 2020-5-21 13:22 | 只看该作者

# {4 h" \) j# V5 M* K你可以用sum函数,另外i增大时会和此前的n/i数值上发生重复,直接去掉后者8 s/ |7 s2 O, {" m" z' ^
改成2 H6 B/ L# ]0 U9 k# j7 X* g
y1 = [];) |3 D1 C  p7 ~7 o" X4 m/ h  S8 s
for i = 1:fix(n/2)7 ?# Q( Z6 V, Q" C
   if mod(n,i) == 0
  N/ g, D# `5 q7 q2 l" W) W       y1 = [y1,i];8 J) I' b+ n: H/ q. U6 K$ H/ y
   end
$ p6 N( p, ]$ G' Fend
' u& h5 P7 ?" p1 Qy = sum( unique(y1) );   
  ]& H8 x( c; t" r% f  dend
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-23 15:41 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表