帕斯卡中数字的可分性
Divisibility of numbers in pascal
我想编写一个 pascal 程序来检查特定数字是否可以被 2、3、5、7、9 和 11 整除以及数字和是偶数还是奇数。最后我想写一个像"This number is divisible by 5 and 9"这样的语句,数字的总和是even/odd。我应该怎么办?
使用模数:
program ModulusTest;
begin
if 8 mod 2 = 0 then
begin
write(8);
writeln(' is even');
end;
if 30 mod 5 = 0 then
begin
write(30);
writeln(' is divisible by 5');
end;
if 32 mod 5 <> 0 then
begin
write(32);
writeln(' is not divisible by 5');
end;
end.
模数是整数除法后剩下的:)
这是我的代码,我分为两部分:
program checkNumber;
var number : integer;
divider : string;
digit1, digit2, sum : integer;
begin
//First//
write('Number : '); readln(number);
if (number MOD 2 = 0) then divider := divider+'2, ';
if (number MOD 3 = 0) then divider := divider+'3, ';
if (number MOD 5 = 0) then divider := divider+'5, ';
if (number MOD 7 = 0) then divider := divider+'7, ';
if (number MOD 9 = 0) then divider := divider+'9, ';
if (number MOD 11 = 0) then divider := divider+'11, ';
write('This number is divisible by '); write(divider);
////////////////////////////////////////////////////////
//Second//
digit1 := number DIV 10;
digit2 := number MOD 10;
sum := digit1 + digit2;
write('and the sum of the numbers is ');
if (sum MOD 2 = 0) then write('even') else write('odd');
////////////////////////////////////////////////////////
end.
First part
您需要MOD(取模)运算来获取分频值列表:
write('Number : '); readln(number);
if (number MOD 2 = 0) then divider := divider+'2, ';
if (number MOD 3 = 0) then divider := divider+'3, '; //divider 2 3 5 7 9 11
.
.
然后将分频器作为字符串保存到变量divider中,并写在显示器上。
write('This number is divisible by '); write(divider);
Second part
您需要使用 DIV(除法)和 MOD(模数)操作。在我的代码中,我限制了 2 digit(1 到 99)的数字输入:
digit1 := number DIV 10;
digit2 := number MOD 10;
sum := digit1 + digit2;
(如果您想输入更大的数字,请使用 if..then.. 函数更改代码)。
然后用MOD判断是偶数还是奇数:
if (sum MOD 2 = 0) then write('even') else write('odd');
我想编写一个 pascal 程序来检查特定数字是否可以被 2、3、5、7、9 和 11 整除以及数字和是偶数还是奇数。最后我想写一个像"This number is divisible by 5 and 9"这样的语句,数字的总和是even/odd。我应该怎么办?
使用模数:
program ModulusTest;
begin
if 8 mod 2 = 0 then
begin
write(8);
writeln(' is even');
end;
if 30 mod 5 = 0 then
begin
write(30);
writeln(' is divisible by 5');
end;
if 32 mod 5 <> 0 then
begin
write(32);
writeln(' is not divisible by 5');
end;
end.
模数是整数除法后剩下的:)
这是我的代码,我分为两部分:
program checkNumber;
var number : integer;
divider : string;
digit1, digit2, sum : integer;
begin
//First//
write('Number : '); readln(number);
if (number MOD 2 = 0) then divider := divider+'2, ';
if (number MOD 3 = 0) then divider := divider+'3, ';
if (number MOD 5 = 0) then divider := divider+'5, ';
if (number MOD 7 = 0) then divider := divider+'7, ';
if (number MOD 9 = 0) then divider := divider+'9, ';
if (number MOD 11 = 0) then divider := divider+'11, ';
write('This number is divisible by '); write(divider);
////////////////////////////////////////////////////////
//Second//
digit1 := number DIV 10;
digit2 := number MOD 10;
sum := digit1 + digit2;
write('and the sum of the numbers is ');
if (sum MOD 2 = 0) then write('even') else write('odd');
////////////////////////////////////////////////////////
end.
First part
您需要MOD(取模)运算来获取分频值列表:
write('Number : '); readln(number);
if (number MOD 2 = 0) then divider := divider+'2, ';
if (number MOD 3 = 0) then divider := divider+'3, '; //divider 2 3 5 7 9 11
.
.
然后将分频器作为字符串保存到变量divider中,并写在显示器上。
write('This number is divisible by '); write(divider);
Second part
您需要使用 DIV(除法)和 MOD(模数)操作。在我的代码中,我限制了 2 digit(1 到 99)的数字输入:
digit1 := number DIV 10;
digit2 := number MOD 10;
sum := digit1 + digit2;
(如果您想输入更大的数字,请使用 if..then.. 函数更改代码)。
然后用MOD判断是偶数还是奇数:
if (sum MOD 2 = 0) then write('even') else write('odd');