不含荧光剂的童装品牌:10、输入一个正整数N,把它分解成质因子相乘的形式。

来源:百度文库 编辑:神马品牌网 时间:2024/05/10 11:49:42
(提示:设因子为I,从2开始到N,让N重复被I除,如果能整除,则用商取代N,I为一个因子;如果不能整除,
再将I增大,继续以上操作,直到I等于N。)
用pascal做

public dt,st,n
accept "input:" to sn
dt=.t.
st=sn+'='
n=val(sn)
do while dt=.t.

divide(n)
enddo

?st
function divide
parameter mdata
for i=2 to mdata
if i=mdata
st=st+allt(str(i))
dt=.f.
exit
endif
if int(mdata/i)=mdata/i
n=mdata/i
st=st+allt(str(i))+'*'
exit
endif

endfor
endfunc

* vfp 记得给分哦

int f(n){
__int l=2,str='';
__while(n-1&&l<=n){
____if(n%l){
______if(str==''){
________str="l";
______}
______else{
________str=str+"*"+l;
______}
____}
____else{
______l++;
____}
__}
__return str;
}
void main(){
__int n=1000;
__printf("%s",f(n));
}
好用没玩C了,不知道对不对...
运行的时候记得把下划线去掉...
PS:我自己没调试过,不知道会不会编译错误

..int f(n){
__int l=2,str='';
__while(n-1&&l<=n){
____if(n%l){
______if(str==''){
________str="l";
______}
______else{
________str=str+"*"+l;
______}
____}
____else{
______l++;
____}
__}
__return str;
}
void main(){
__int n=1000;
__printf("%s",f(n));
}
好用没玩C了,不知道对不对...
运行的时候记得把下划线去掉...
PS:我自己没调试过,不知道会不会编译错误
回答者:Flycat1022 - 魔法学徒 一级 1-6 20:51

--------------------------------------------------------------------------------

public dt,st,n
accept "input:" to sn
dt=.t.
st=sn+'='
n=val(sn)
do while dt=.t.

divide(n)
enddo

?st
function divide
parameter mdata
for i=2 to mdata
if i=mdata
st=st+allt(str(i))
dt=.f.
exit
endif
if int(mdata/i)=mdata/i
n=mdata/i
st=st+allt(str(i))+'*'
exit
endif

endfor
endfunc

* vfp 记得给分哦