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

求一个数的真因数。

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
2 \+ H" _. ?) x0 e2 Z( M

$ C; w' w* U; L' r这个是一个函数,求一个数的真因数
) ?( b4 R( k9 _8 z0 I5 l2 m! e% e  Hfunction y=myfun(n)
+ n+ m  ?& R6 y7 ]3 `9 @% a0 A, R   y1=[];
  S* m6 j) \# }5 u7 x/ ~   for i=1:fix(n/2);
, A4 G$ X  C; c% J; Y# X       if mod(n,i)==0;! w- y7 y& H( @
           y1=[y1,i,n/i];
/ d4 H: a4 Q- [, m" n+ O       end
; S" \) n3 F: M/ @   end6 B3 B; K* v+ Z9 v
   y=unique(y1);   $ T5 e# J+ i6 ]
end# g( W% `. A# a% Y: |" m! f% C: `
然后我用这个函数求1到1000的亲和数对1 w9 b, |+ V! ?' y/ T; O
for  a=1:10000;
% T% f2 v- l7 C- x# f
4 N5 r( }& P: M# r% d4 j6 w. m% Q6 D    b=sum(myfun(a)); %求a的真因数和  为b
  o! U# J" S6 O7 [
6 \. i6 Y: @+ [$ M    c=sum(myfun(b)); %求b的真因数和
3 c) B4 J6 ~# W5 o( \5 \/ }( D3 x: P
      if   c==a  
5 K' C0 @  z: ?$ o  w7 v( V0 l# o7 _7 c
          disp(a)                 %如果a的真因数和b的真因数相等  则输出a
$ ]' O# p' @& k2 _: Y7 e  N2 y: G* Z9 y# M
      end  e  J# x: g: Z- u7 V8 y0 v4 m
( [  h, Q- V7 Z$ Y
end1 e8 |) h( D. B/ `( f3 L# A

, F) |6 g- O3 S3 l5 u0 v: ^. x# I+ C3 {$ z& N) J

' ~* O3 V# H* ~: [$ @9 W" x3 I  Q3 j1 R
    但是他不输出任何数,
+ O7 C  H4 W2 Z$ v$ I* k7 z附上亲和数对
  [2 ^( P( e$ p( N亲和数是这样一对正整数a和b,使得a的所有真因子的和等于b,而b的所有真因子的和等于a。
% I3 q: H4 N1 P2 W就是220的真因子是1、2、4、5、10、11、20、22、44、55、110,它们的和是284;284的真因子是1、2、4、71、142,其和恰好是220。这是一对亲和数。
* [/ R* V* C" I' n. {% m5 E请教大神,非常感谢!

该用户从未签到

2#
发表于 2020-5-21 13:22 | 只看该作者
* X+ u9 ?9 _. P- N+ Q1 a4 q/ Y  _" V; I. T
你可以用sum函数,另外i增大时会和此前的n/i数值上发生重复,直接去掉后者
2 f' ~- Z" q$ W改成% B4 e( ?8 \4 z4 f/ `$ n
y1 = [];6 q" O& W% r6 t# O! \) F
for i = 1:fix(n/2)9 P" {0 f" j% g0 B% {
   if mod(n,i) == 0$ a8 O2 [6 f; _, \
       y1 = [y1,i];
8 ~  x' ^6 D) |% \8 R1 @# a1 d   end8 E# T0 ~3 ^/ m. t* u3 G
end
4 L: u0 z/ \8 v- Yy = sum( unique(y1) );   
! D  j# ?; N* f* Q7 K! [end
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-23 20:13 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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