|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
' t" K) Q* i- A f# `8 d
# m* q9 d8 j/ k N8 g8 }这个是一个函数,求一个数的真因数, N0 C( z6 @: W0 k! e) t
function y=myfun(n)+ n+ T, Z. r5 N& T0 S. l2 Q
y1=[];" \2 [& \' d+ P6 ^7 Y' e& B1 F
for i=1:fix(n/2);* P7 n6 p- h+ ~. E- P+ x
if mod(n,i)==0;
% v" V; l; Q. F& c9 u y1=[y1,i,n/i];1 \1 L- h) ?* S2 ~
end) T0 m5 Z- }" z0 A0 o
end& L! B8 Z( g8 F) N: [3 E+ m @8 L6 P2 [
y=unique(y1); 0 ?8 Y5 ^; p' y' |
end! O' m5 K+ q) z# v& Y
然后我用这个函数求1到1000的亲和数对3 x0 R' o% Y! H2 |
for a=1:10000;
1 N/ k/ U+ f2 o' p5 a; x$ U
# d+ y3 g |, w* K b=sum(myfun(a)); %求a的真因数和 为b1 O, J) S) l# V: I9 ]
. s9 I/ Z) Q' ^0 l0 {, y" r) i9 ` c=sum(myfun(b)); %求b的真因数和
' h& O: k5 g5 G# _
0 c' [! E: g- {, D) K if c==a 7 d! e; \3 p: P% `& ^- C2 l
9 Y' [2 ?+ n+ B
disp(a) %如果a的真因数和b的真因数相等 则输出a
; _% {6 c+ V9 l- W5 d$ ~. q. E$ g; @& Q+ ]
end/ O# x" \1 b8 v8 C4 R% x0 O X/ _
" w1 U0 }. P6 q) D; }$ q+ o
end
$ k' e. V* i7 ]( o
7 M! C+ A, i8 k. b, m ]0 r$ E1 T
# j' x, X. G! u2 j/ V
% [7 ` P5 [5 Q3 r) c' B2 t9 L: D7 I3 T0 U3 g. K
但是他不输出任何数,
8 L; t: j7 }* o/ c% _0 c/ g/ u附上亲和数对
0 \$ Y* X" V& G亲和数是这样一对正整数a和b,使得a的所有真因子的和等于b,而b的所有真因子的和等于a。
% ~5 w1 l# Z- B+ ?2 D就是220的真因子是1、2、4、5、10、11、20、22、44、55、110,它们的和是284;284的真因子是1、2、4、71、142,其和恰好是220。这是一对亲和数。# u3 y; u" C2 n1 w9 y" W; {' t/ D
请教大神,非常感谢! |
|