|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
* Q' _9 H( W+ }& _: U; |9 `
4 z% z D: V5 m& U% [5 A8 Y这个是一个函数,求一个数的真因数
. Z) h& Z4 U) P3 vfunction y=myfun(n)
5 M5 a; R- o8 R1 ~8 {. E y1=[];
0 d) S/ u" P- C6 y- P for i=1:fix(n/2);
6 @- |0 k! k' Y: ~( D if mod(n,i)==0;5 o3 \) F7 z+ F, q* i& y* ~ P
y1=[y1,i,n/i];. o2 @2 }6 U4 E+ n+ ~" `! P
end
+ F8 e! ~8 F& l" |! V end* H. Y5 @ b8 R' m" x% D
y=unique(y1);
8 Z j. }1 F4 ~( ]6 lend
( H: W7 w I& O' d3 a" C" z然后我用这个函数求1到1000的亲和数对2 k) W2 \/ o1 o" s
for a=1:10000;
: x* K7 R4 D# Q+ |& u( |4 y2 c$ Q: `8 V9 R
b=sum(myfun(a)); %求a的真因数和 为b3 [1 P) S- `+ J9 h
' x& v$ p% l1 b
c=sum(myfun(b)); %求b的真因数和
; L% Z7 C) \# {) e
/ i. i; H1 w/ O) s' n6 S if c==a
+ u- \) V& N1 S. k. [; F$ g" ^9 r- {! @% ^1 ]4 _6 U
disp(a) %如果a的真因数和b的真因数相等 则输出a$ F! y; C# K& N# a% [* G
' W" M4 k1 i8 S0 _1 T
end" z! W* j% w7 o( q5 C/ d: W* S7 ]
* h1 d, m$ N" ]
end( X4 Y6 x: S- f
; T' L& ]' g9 K/ V' \
5 x0 w9 U* g- @4 Z' }/ r7 o; ]2 V8 F1 M7 M6 y" `
6 `$ Z9 j' F; _- Z. M5 F0 A; q7 m* |
但是他不输出任何数,- H I% C! Q8 T9 x3 y
附上亲和数对
2 \* m% T- ?' x1 a, O0 _亲和数是这样一对正整数a和b,使得a的所有真因子的和等于b,而b的所有真因子的和等于a。
4 `, t# w; o: q3 T1 m就是220的真因子是1、2、4、5、10、11、20、22、44、55、110,它们的和是284;284的真因子是1、2、4、71、142,其和恰好是220。这是一对亲和数。
6 ^5 c: R* k" i6 z4 @请教大神,非常感谢! |
|