Je veux écrire un programme pascal qui vérifie si un nombre particulier est divisible par 2, 3, 5, 7, 9 et 11 et si la somme des chiffres est paire ou impaire. À la toute fin je veux écrire une déclaration comme "Ce nombre est divisible par 5 et 9" et la somme des nombres est pair/impair. Que devrais-je faire?Divisibilité des nombres en pascal
Répondre
C'est mon code, je sépare en 2 sections:
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.
Première partie
Vous avez besoin opération MOD (module) pour obtenir la liste des valeurs de diviseur:
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
.
.
enregistrez le diviseur dans la variable diviseur sous forme de chaîne, et l'écrire sur le moniteur.
write('This number is divisible by '); write(divider);
Deuxième partie
Vous devez séparer les chiffres dans la variable unique à l'aide DIV (fracture) et opération MOD (module). Dans mon code, je limite l'entrée numérique pour 2 chiffres (1 jusqu'à 99):
digit1 := number DIV 10;
digit2 := number MOD 10;
sum := digit1 + digit2;
(vous changez l'utilisation du code if..then .. fonction si vous voulez obtenir une entrée plus grand nombre).
Ensuite, utilisez MOD pour vérifier le numéro est pair ou impair:
if (sum MOD 2 = 0) then write('even') else write('odd');
Utiliser le module:
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.
Modulus est ce qui reste après une division entière :)
Grand, merci! Une question: que veut dire 8, 30, 32? Ou sont-ils juste des nombres aléatoires et ce n'est qu'un exemple? – charlie
Il y a juste des nombres totalement composés :) – jacmoe
Okay. Et pourriez-vous me dire pourquoi vous avez utilisé <> au lieu de = dans le dernier exemple? – charlie
Non, honnêtement, je ne sais même pas comment commencer. – charlie
Un nombre est même divisible par un autre nombre si le reste est zéro. Utilisez l'opérateur mod pour vérifier cela. Utilisez la fonction Odd pour tester si un nombre est impair. Pour faire une somme des chiffres qui font un nombre, ajoutez le module 10 du nombre à une somme et divisez le nombre par 10 dans une boucle jusqu'à ce que le nombre soit zéro. –
Vous pouvez utiliser ** mod ** pour vérifier le nombre particulier –