求一pascal程序,给出一个整数n,其中n小于等于10000,请统计n的因数的个数.

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 01:46:06
求一pascal程序,给出一个整数n,其中n小于等于10000,请统计n的因数的个数.

求一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;

求一pascal程序,给出一个整数n,其中n小于等于10000,请统计n的因数的个数. 产生数pascal程序给出一个整数n(n 给出一个整数n,其中n小于等于1000.请求出1~n中所有的素数的个数求一pascal程序 给出一个整数n,如果n是偶数,n变为n div 2,否则n变为n*3+1,问经过多少步n变为1,求一pascal程序.如输入5,就输出5(步数) 给出整数n,接下来有n行,每行一个整数,求最小值 用pascal做 整数分解(版本2) pascal一个正整数可以分解成若干个自然数之和.请你编一个程序,对于给出的一个正整数n(1 给出数列:4,7,10,13,16,19,22,25...,再给出一个整数n,让你求出列前n项的和,用pascal解 pascal金字塔编写一个程序,输入两个整数N和K(N,K 用 Pascal 编写一个程序将十进制整数n转换为二进制数.用 Pascal 编写加说明 pascal编程给出一个n,求前n个奇数的总和 输入 一行,一个整数n 输出 一行,表示总和 pascal程序设计 输入一个整数n,n 求正数a的n次方根一个数a(a为整数),一个数n(n>0),我需要求a的n次方根.数学公式可以.pascal程序也可以. pascal问题,求程序:1、 文本文件t.in中第一行的一个 正整数N(N 给出一个整数n,输出所有比n小的且是7的倍数的数 用pascal做 给出一个整数n,接下来有n个整数,你要求出这n个整数中的最大值.用pascal做 求Free Pascal程序问题如下:第一行输入一个正整数n(1 用PASCAL语言编写一个求1+2+3+...+N的程序 一、 编写程序,从键盘输入一个整数N(N