求一pascal程序,给出一个整数n,其中n小于等于10000,请统计n的因数的个数.
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 21:12:39
![求一pascal程序,给出一个整数n,其中n小于等于10000,请统计n的因数的个数.](/uploads/image/z/2477672-8-2.jpg?t=%E6%B1%82%E4%B8%80pascal%E7%A8%8B%E5%BA%8F%2C%E7%BB%99%E5%87%BA%E4%B8%80%E4%B8%AA%E6%95%B4%E6%95%B0n%2C%E5%85%B6%E4%B8%ADn%E5%B0%8F%E4%BA%8E%E7%AD%89%E4%BA%8E10000%2C%E8%AF%B7%E7%BB%9F%E8%AE%A1n%E7%9A%84%E5%9B%A0%E6%95%B0%E7%9A%84%E4%B8%AA%E6%95%B0.)
求一pascal程序,给出一个整数n,其中n小于等于10000,请统计n的因数的个数.
求一pascal程序,给出一个整数n,其中n小于等于10000,请统计n的因数的个数.
求一pascal程序,给出一个整数n,其中n小于等于10000,请统计n的因数的个数.
var n,i,ans:integer;
begin
readln(n);ans:=0; //读入,计数器置0
for i:=1 to n do if n mod i=0 then inc(ans); //从1到n循环 找到一个他的因数就计数器加一
writeln(ans); //最后输出结果
end.
var n,k:integer; begin readln(n); write(n,
一楼的程序是对的,但是复杂度较高;
可以用一个公式,令n=a1^b1*a2^b2*...*an^bn
那么它因数的个数就是(b1+1)*(b2+1)*...*(bn+1)
代码:
var
n,a,t,s:longint;
begin
readln(n);
a=2; s:=1;
while n>1 do begi...
全部展开
一楼的程序是对的,但是复杂度较高;
可以用一个公式,令n=a1^b1*a2^b2*...*an^bn
那么它因数的个数就是(b1+1)*(b2+1)*...*(bn+1)
代码:
var
n,a,t,s:longint;
begin
readln(n);
a=2; s:=1;
while n>1 do begin
while n mod a<>0 do inc(a);
t:=0;
while n mod a=0 do begin inc(t); n:=n div a; end;
s:=s*(t+1);
end;
writeln(s);
end;
收起
var n,i,a:integer;
begin
read(n);//读入n
for i:=1 to n do //循环搜索
if n mod i=0 then inc(a);//如果i是n的因数,那么a加一
write(a);
end.
定义、输入输出自己写!我把函数写下
function a(n:longint):longint;
var s,i:longint;
begin
s:=0;
for i:=1 to n do if n mod i=0 then inc(s);
a:=s;
end;