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

求一个数的真因数。

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

% t. G% J2 n+ `# ]" W
. u( F8 |4 h% h/ v8 E这个是一个函数,求一个数的真因数
% E9 H! H: s3 \  N5 ^function y=myfun(n): s! s' l9 T* |  g" m7 {0 B
   y1=[];6 Q) ]- f) a8 A
   for i=1:fix(n/2);
2 ?  D! z& B5 m: r( Z5 M       if mod(n,i)==0;
9 a! }) J" f1 e+ e+ W           y1=[y1,i,n/i];8 g! t! |5 e; H
       end. Q) x" E; M. B: L
   end- [' c! D9 O+ J
   y=unique(y1);   
! k4 W% c/ w: V+ x# E: ^/ Hend5 G" l  T# v" ^, W+ T
然后我用这个函数求1到1000的亲和数对* E+ [: V' F1 }2 ~+ f) D) I! c
for  a=1:10000;
! M+ Y- t  ^- E8 x9 b- t, J! `/ R' r' p) {
    b=sum(myfun(a)); %求a的真因数和  为b5 U5 ^" t1 n, p$ `9 W0 S

$ F) i7 G. u0 v3 N* E/ r& x    c=sum(myfun(b)); %求b的真因数和
1 p) H3 k- X; s" a; M9 i7 v+ R9 R5 J7 K4 l. q1 _) N: K' s
      if   c==a  
2 t- H, V% E3 w% \9 B7 J4 ]3 H, M9 F. @  {$ h2 b" r6 k  Z/ j9 p7 |- `
          disp(a)                 %如果a的真因数和b的真因数相等  则输出a, w" b% ]" Z* E2 E: z

/ O& F2 ]9 c( l0 ?' j  z      end
# {+ V2 C; M1 @4 }* ?2 `1 L1 u
% C0 @* y' x* N" Z7 }( a$ Mend& \4 j/ [3 m" _3 @1 ^( H. K

, G" R1 [. f' v: k+ u0 i/ J) R1 S2 Q

- S2 ~' l+ f, o8 y
2 P5 m9 {, T2 L1 C( i! ~    但是他不输出任何数,
& t1 _; W( T4 e3 c# Z4 p- V# C" d附上亲和数对
3 J, V9 a: `5 C- o& K0 q# R$ S7 i亲和数是这样一对正整数a和b,使得a的所有真因子的和等于b,而b的所有真因子的和等于a。+ {! F5 d4 t) L, p% K
就是220的真因子是1、2、4、5、10、11、20、22、44、55、110,它们的和是284;284的真因子是1、2、4、71、142,其和恰好是220。这是一对亲和数。9 E- J  ^$ g( X# n- g
请教大神,非常感谢!

该用户从未签到

2#
发表于 2020-5-21 13:22 | 只看该作者
8 |. E# K% k9 T2 E, B2 m- d
你可以用sum函数,另外i增大时会和此前的n/i数值上发生重复,直接去掉后者( v6 k: u. h% m
改成
! L  J) i! `4 E. K) W, y0 ey1 = [];
, ?7 w7 {9 b  L$ ?; c/ _/ ofor i = 1:fix(n/2)( P, }6 |  j& a6 ]8 X8 H: V7 D& Y
   if mod(n,i) == 0
- }2 K' _8 [7 Z$ j# i8 H" H# Z       y1 = [y1,i];2 R; B- ^5 q) y
   end
! D" T& @7 @* W9 q$ t* |end+ m* y; p- J4 `5 n* {4 _1 j9 W( G
y = sum( unique(y1) );   
9 v. U0 f% J0 }8 n# gend
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 16:34 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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