主题:因数个数
紫月蓝风
[专家分:30] 发布于 2007-04-17 20:23:00
键盘输入一个整数(1<A<100000),打印出它的的全部因数(不包括1和本身),并统计这些因数相应的个数。
如:输入:48
输出:2 3 4 6 8 12 16 24
4 1 2 1 1 1 1 1
回复列表 (共4个回复)
沙发
&佑慧妹妹& [专家分:660] 发布于 2007-04-17 20:26:00
CLS
DO
INPUT n
LOOP UNTIL n > 1 AND a < 100000
DIM a(n), b(n)
FOR i = 2 TO n - 1
IF n MOD i = 0 THEN k = k + 1: a(k) = i: PRINT USING "###"; a(k);
NEXT
PRINT
FOR i = 1 TO k
x = n
DO WHILE x MOD a(i) = 0
x = x / a(i)
b(i) = b(i) + 1
LOOP
NEXT
FOR i = 1 TO k
PRINT USING "###"; b(i);
NEXT
END
板凳
mickeyice [专家分:200] 发布于 2007-04-18 15:37:00
dim a[1000],b[1000] '假设1000足够大
input n
temp=0
for i = 2 to int(n/2)
k=n:count=0
if(k/i=k\i) then
while (k\i=k/i)
temp=temp+1:k=k/i:count=count+1
wend
a[temp]=i:b[temp]=count
end if
next
for i = 1 to temp
? a[i];" ";b[i],
next
end
3 楼
Matodied [专家分:7560] 发布于 2007-04-20 18:10:00
CLS
DIM a(10000)
INPUT n:s=0
FOR i=2 TO INT(n/2)
IF n MOD i=0 THEN s=s+1:a(s)=i
NEXT i
FOR i=1 TO s
gs=0
DO
gs=gs+1
LOOP UNTIL n MOD a(i)^gs<>0
PRINT "因数";a(i);"共有";gs-1;"个",
NEXT i
END
4 楼
wzc1996 [专家分:1680] 发布于 2007-04-21 10:57:00
cls
input n
for i=2 to n-1
if n mod i=0 then ? i;s=s+1
next
? s;
我来回复