帕斯卡中数字的可分性

时间:2017-01-15 10:00:29

标签: pascal

我想编写一个pascal程序,检查特定数字是否可以被2,3,5,7,9和11整除,以及数字之和是偶数还是奇数。在最后,我想写一个声明,如“这个数字可以被5和9整除”,数字的总和是偶数/奇数。我该怎么办?

2 个答案:

答案 0 :(得分:1)

使用模数:

模数是整数除法后的剩余部分:)

答案 1 :(得分:0)

这是我的代码,我分为两部分:

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.
  

第一部分

您需要 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);
  

第二部分

您需要使用 DIV (除法)和 MOD (模数)操作将数字分成单个变量。在我的代码中,我限制 2位(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');