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

求一个数的真因数。

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
" N2 G' V" X' N7 K# N8 ]

2 Z7 H" g! j# T0 `) ?' W7 X这个是一个函数,求一个数的真因数
; u* O) O1 d3 ?# C7 x9 K* Efunction y=myfun(n)) I; v9 o0 Q+ K
   y1=[];. L9 [' A/ i" J3 ?' g
   for i=1:fix(n/2);. f( R: K% i4 P- r4 D: m$ k& M
       if mod(n,i)==0;3 e8 _6 u& ~3 f7 [0 ?+ y: \
           y1=[y1,i,n/i];2 ?( Z5 w/ S  v6 I
       end7 v; F# {9 U  T1 F# J9 Y( X( Z- e( V( V
   end5 G( ?+ j% l) H7 M$ |( l. ^! y' ]
   y=unique(y1);   
3 Z. k7 _1 _6 p3 N3 J7 }7 W3 V+ j) Rend
9 i" `; D1 X* X( t% p/ P3 b( H9 W, H然后我用这个函数求1到1000的亲和数对) @( `# t# B# r. y1 m
for  a=1:10000;- q  c( ~! [! n
$ X0 A1 n( t, |3 V2 {6 k$ ~/ G0 s
    b=sum(myfun(a)); %求a的真因数和  为b
6 ~# z/ I5 b- I% _$ r7 c$ M; E: ]) m5 d+ t
    c=sum(myfun(b)); %求b的真因数和+ G6 i6 A0 ^) t- B/ S
! A5 V6 K: t7 j1 Z+ O4 M
      if   c==a  ' j, @- s4 W* V3 t( v
1 K. O7 b4 \: D& n
          disp(a)                 %如果a的真因数和b的真因数相等  则输出a
9 _, z$ n. `- Q; v( g$ t5 \/ d3 M* S" f5 ]' Z# _
      end
; E) S; \: f, O% h  w  _0 B( [! V6 B! ~; g" Z
end2 _. I# K, I7 v" H5 R
5 ]/ ]; F  [2 F/ T

9 c, U" @4 ?+ ]; P) n/ n, I% d, W% I- R9 J0 j+ [/ {" U, U9 W$ H, ]

+ ?% d# z9 i0 G8 Q8 y$ r4 i    但是他不输出任何数,; Y% i6 }- @( u! v, |% a
附上亲和数对
% h5 d" A0 D3 z/ K2 W亲和数是这样一对正整数a和b,使得a的所有真因子的和等于b,而b的所有真因子的和等于a。
! _5 X! O. B8 I就是220的真因子是1、2、4、5、10、11、20、22、44、55、110,它们的和是284;284的真因子是1、2、4、71、142,其和恰好是220。这是一对亲和数。
; D) O( _/ ?: q1 ~) g2 p+ G请教大神,非常感谢!

该用户从未签到

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

3 ^  K" j- S$ _0 Q" i2 p你可以用sum函数,另外i增大时会和此前的n/i数值上发生重复,直接去掉后者
! }7 V, k& c1 p& I2 ~) ?改成1 A) T( T& v' J. j/ s  s
y1 = [];
+ M- z% t, }. l' f  I( ^4 V2 L# F/ yfor i = 1:fix(n/2)
4 f) ?  a5 d4 P# ^. x   if mod(n,i) == 0
2 h0 t* r9 [8 W" s3 M3 [* T9 A       y1 = [y1,i];9 [& w. Q( `8 C' E! i
   end& y% ~: t0 Z/ i( t  t
end
' k! b0 L& F- \/ J3 [. S, e) ?y = sum( unique(y1) );   & z, I6 P! u" ?# G5 Z
end
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-26 03:06 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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