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

求一个数的真因数。

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

$ r2 N, B' w' T0 l* q# {: b* E& J/ ?0 g" L0 t, @  @
这个是一个函数,求一个数的真因数
& m, a+ J$ {% T, M) }6 hfunction y=myfun(n)
; o! y; ^# Z* W8 V( l; y% v   y1=[];
6 f& |. N: y1 ?: V  u0 j   for i=1:fix(n/2);
4 A$ m  z& \1 T+ m: {       if mod(n,i)==0;* B1 J  C9 R5 U
           y1=[y1,i,n/i];4 k# C' v1 b7 F4 w4 N5 w
       end& W* f+ O. y: I# K0 y8 ^
   end% b" `; N8 H- ?, }/ r( [
   y=unique(y1);   
% x0 }( A) J# l0 Wend9 v, e7 |: H6 `. ^. M' ]
然后我用这个函数求1到1000的亲和数对2 g% R0 y- @0 _( ]& u- L
for  a=1:10000;
2 q7 T4 N+ P: }5 s
$ L4 L; R/ s- h* a! J9 I. y8 |    b=sum(myfun(a)); %求a的真因数和  为b# ~8 \# B" X0 V0 t( N. U
- g& l/ _4 n! c
    c=sum(myfun(b)); %求b的真因数和% R- s; i; N* h; P9 O

- v/ {( H3 g7 i% A      if   c==a  
  R' g4 v) W$ G* |# n5 c, `! j4 i! M
8 u( C' v/ Z6 Y, Y) I( W4 }4 y          disp(a)                 %如果a的真因数和b的真因数相等  则输出a
3 s7 z5 w+ d/ K3 J& D/ P, q" e; e  t! V8 J0 {
      end
+ g! z% x. m1 |9 {* q3 s
6 Y# Z6 G! D$ r& P+ R8 |" p8 Lend7 G  Q/ O$ |0 V( }  w4 y4 _

4 d9 s$ a4 ]# ]/ K7 N$ V
% M# @1 E6 P+ O+ p% @+ D/ Y" K% w
; z! e1 m# G- D+ D" T# A! a
  {9 L# H- Y$ B  l4 m    但是他不输出任何数,
% ~' ^9 q1 b$ Q% o附上亲和数对( M4 ^" t- k% B+ H9 {8 P
亲和数是这样一对正整数a和b,使得a的所有真因子的和等于b,而b的所有真因子的和等于a。. c0 N/ @& l$ L$ j/ O
就是220的真因子是1、2、4、5、10、11、20、22、44、55、110,它们的和是284;284的真因子是1、2、4、71、142,其和恰好是220。这是一对亲和数。2 F% a! M# W( x$ }% X
请教大神,非常感谢!

该用户从未签到

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

3 ]  L" M1 _- P- N" r你可以用sum函数,另外i增大时会和此前的n/i数值上发生重复,直接去掉后者; v. x  o+ [* |# \& r
改成
" m; N, x( r" c( j# L& Zy1 = [];) X; A" {: w3 n7 W, j( C  ]$ a* v
for i = 1:fix(n/2)" V+ ?, T+ b0 r4 G' A# p
   if mod(n,i) == 0
- n3 x0 [) H  B9 g. w       y1 = [y1,i];4 Z6 f5 s+ ?- J& m
   end
( p4 m4 n( \) Q# X$ `  w6 ^: i5 Zend8 ~2 b, ~5 q  c2 H& `7 o
y = sum( unique(y1) );   ' P$ K2 d% `9 K
end
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-24 07:23 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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