pascal问题拆分问题拆分程序:split.pas输入:split.in输出:split.out数学老师说,他给一个正整数k,你找出所有正整数(x,y),使1/k=1/x+1/y,且x>=y。求出有多少组满足要求的x,y。输入只有一个正整数的K。输出一行一个整数,表示解的组数。输入2,输出2;解释:1/2=1/6+1/31/2=1/4+1/4;数据限制:50%满足2
2019-05-23
pascal问题拆分
问题拆分
程序:split.pas
输入:split.in
输出:split.out
数学老师说,他给一个正整数k,你找出所有正整数(x,y),使1/k=1/x+1/y,且x>=y。求出有多少组满足要求的x,y。
输入只有一个正整数的K。
输出一行一个整数,表示解的组数。
输入2,输出2;
解释:
1/2=1/6+1/3
1/2=1/4+1/4;
数据限制:
50%满足2<=k<=1000;
100%满足2<=k<=30000
优质解答
uses wincrt;
begin
var i,k:longint;
var sum:integer;
sum:=0;
readln(k);
for i:=1 to k do
begin
if (k mod i=0) then
sum=sum+1;
end;
writeln(sum);
end.
{本题实质就相当求k有多少个因子}
uses wincrt;
begin
var i,k:longint;
var sum:integer;
sum:=0;
readln(k);
for i:=1 to k do
begin
if (k mod i=0) then
sum=sum+1;
end;
writeln(sum);
end.
{本题实质就相当求k有多少个因子}