讨论 / AC代码
chengruicheng 2015-02-14 22:13:40
点我顶贴 收藏 删除
还是比较简单的一道题的,但是得用qword:

var n,x:qword;

function fenjie(a:qword):qword;

var i:longint;

begin

for i:=2 to trunc(sqrt(a)) do

if a mod i=0 then exit(i);

exit(a);

end;

begin

read(n);

repeat

x:=fenjie(n);

n:=n div x;

write(x,' ');

until n=1;

end.

#1 Sentinel Prome@2015-07-06 18:23:32
回复 删除
lz 思路不错但不需要这么烦,又不会超时

var n:int64; i,j:longint;

begin

readln(n);

for i:=2 to n div 2 do

begin

if n mod i =0 then

repeat

write(i,' ');

n:=n div i;

until n mod i<>0;

if n=1 then break;

end;

end.

#2 sbsbt@2018-08-02 18:52:23
回复 删除
不用那么麻烦

var

a,i:int64;

begin

read(a);

while a<>1 do

begin

i:=2;

while i<=a do

begin

if a mod i=0 then begin

write(i,' ');

a:=a div i;

break;

end;

i:=i+1;

end;

end;

end.

#3 Dream86333@2021-11-25 19:05:57
回复 删除
#include<iostream>

using namespace std;

int main()

{

int n,i=2;

cin>>n;

while(n!=1)

{

while(n%i==0)

{

n/=i;

cout<<i<<" ";

}

i++;

}

return 0;

}

查看更多回复
提交回复