6、Antiprime数
6、Antiprime数
如果一个自然数n,满足所有小于n的自然数的约数个数都小于n的约数个数,则n是一个Antiprime数。譬如:1, 2, 4, 6, 12, 24。
输入:N
输出:一行。
例:输入:1000
输出:840
program Antiprime;
function divisors(nn : longint) : integer;
var ii, jj, kk : integer;
begin
jj := 0;
kk := trunc(sqrt(nn));
for ii := 2 to kk do
if nn mod ii = 0 then
jj := jj+1;
if kk * kk = nn then
divisors := 2 * jj + 1
else
divisors := 2 * (jj + 1);
end;
var i, n, num, tmp, tmp_num : longint;
begin
readln(n);
tmp := 1;
tmp_num := 1;
for i := 1 to n do
begin
num := divisors(i);
if (num > tmp_num) then
begin
tmp_num := num;
tmp := i;
end;
end;
writeln(tmp, ' -- ', tmp_num);
readln;
end.
如果一个自然数n,满足所有小于n的自然数的约数个数都小于n的约数个数,则n是一个Antiprime数。譬如:1, 2, 4, 6, 12, 24。
输入:N
输出:一行。
例:输入:1000
输出:840
program Antiprime;
function divisors(nn : longint) : integer;
var ii, jj, kk : integer;
begin
jj := 0;
kk := trunc(sqrt(nn));
for ii := 2 to kk do
if nn mod ii = 0 then
jj := jj+1;
if kk * kk = nn then
divisors := 2 * jj + 1
else
divisors := 2 * (jj + 1);
end;
var i, n, num, tmp, tmp_num : longint;
begin
readln(n);
tmp := 1;
tmp_num := 1;
for i := 1 to n do
begin
num := divisors(i);
if (num > tmp_num) then
begin
tmp_num := num;
tmp := i;
end;
end;
writeln(tmp, ' -- ', tmp_num);
readln;
end.


浙公网安备 33010602011771号