Pascal 语言输入一个正整数,求出它的所有素因子,每两个数之间用一个空格隔开

Pascal 语言输入一个正整数,求出它的所有素因子,每两个数之间用一个空格隔开
Pascal 语言(1)输入一个正整数,求出它的所有素因子,每两个数之间用一个空格隔开。
(2)已知一队兔子,每个月可以生一对小兔子,而小兔子过一个月后也可以生一对小兔子,即兔子的数量是:第1个月1对,第2个月2对,第三个月3对,第四个月5对,……,n(n<=30)个月后有对少对兔子
(3)外出旅游的几位朋友决定次日早晨共分一筐苹果。天刚亮,第一个人醒来,他先拿了一个,再把筐里的八分之一拿走;第二个人醒来,先拿两个,再把筐里的八分之一拿走;第三个人醒来,先拿三个,再拿走筐里的八分之一;…每个人依次照此方法拿出各人的苹果,最后筐里的苹果全部拿完,他们每人所拿到的苹果数正巧一样多。求原先筐里的苹果数和人数。
(1)输入18
输出2 3 3
(2)输入4
输出5
第一题
program EDG666;
var
i,j,k:longint;
f:boolean;
begin
readln(k);
for i:=2 to 100 do
if k mod i=0 then
begin
f:=true;
for j:=2 to i div 2 do
if i mod j=0 then
begin
f:=false;
break;
end;
if f then write (i,' ');
end;
readln;
readln;
end.
哪里错了,求大神指点
mens_rea 1年前 已收到1个回答 举报

多彩回复框 幼苗

共回答了13个问题采纳率:92.3% 举报

审题错了吧,求所有素因子意思就像因子分解。比如18 = 2 × 3 × 3
你找素因子用的i那个for循环吧,按你的求法,一个因子只能在式子中出现一次。下一次循环i的值就增加了嘛。你可以按照这个思路来:
输入k,while循环(k 1) i:=2(要找的素因子)
如果 (i是k的因数并且i是素数) k := k div 2; 输出i
否则 inc(i)
这样一个因子就可以反复出现在式子中

1年前

5
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.056 s. - webmaster@yulucn.com