Você está na página 1de 10

vExerccios com Inteiros

1. Dada uma seqncia de nmeros inteiros no-nulos, seguida por 0, imprimir seus
quadrados.


program CalculaQuadrado;
var
numero: integer; /* usada para leitura da sequencia */
quadrado: integer; /* guardara o quadrado do numero lido */
begin
writeln('');
writeln(' Calculo dos quadrados de uma sequencia de numeros');
writeln('');
write('Entre com uma sequencia de numeros inteiros nao-nulos,
seguida por 0: ');
read(numero);
while (numero <> 0) do
begin
quadrado:= numero * numero;
writeln('O quadrado do numero ', numero, ': ',quadrado);
read(numero)
end
end.

2. Dado um nmero inteiro positivo n, calcular a soma dos n primeiros nmeros
naturais.

Soluo em C
3. Dado um nmero inteiro positivo n, imprimir os n primeiros naturais mpares.
Exemplo: Para n=4 a sada dever ser 1,3,5,7.

Soluo em C
4. Dados um inteiro x e um inteiro no-negativo n, calcular x
n
.

Soluo em C
Soluo em Pascal
5. Uma loja de discos anota diariamente durante o ms de maro a quantidade
de discos vendidos. Determinar em que dia desse ms ocorreu a maior venda e
qual foi a quantidade de discos vendida nesse dia.
6. Dados o nmero n de alunos de uma turma de Introduo aos Autmatos a Pilha
(MAC 414) e suas notas da primeira prova, determinar a maior e a menor nota obtidas
por essa turma (Nota mxima = 100 e nota mnima = 0).

program Notas;
var
n, Nota, Contador, NotaMaior, NotaMenor: integer;
begin
writeln ('Entre com o numero de alunos: ');
read (n);
writeln ('Digite as notas(de 0 a 100) dos alunos: ');
Nota := 0;
Contador := 0;
NotaMaior := 0;
NotaMenor := 100;
repeat
read (Nota);
Contador := Contador+1;
if (NotaMaior < Nota) then NotaMaior := Nota;
if (NotaMenor > Nota) then NotaMenor := Nota
until Contador = n;
writeln ('A maior nota obtida foi: ',NotaMaior);
writeln ('A menor nota obtida foi: ',NotaMenor)
end.

7. Dados n e uma seqncia de n nmeros inteiros, determinar a soma dos
nmeros pares.
8. Dado um inteiro no-negativo n, determinar n!

program Fatorial;
var
n, x, Contador, fatorial:integer;
begin
writeln ('');
writeln (' Calculo do fatorial de um numero');
writeln ('');
write ('Entre com um inteiro nao-negativo: ');
read (n);

fatorial := 1;
Contador := 1;
repeat
fatorial := fatorial*Contador;
Contador := Contador+1
until Contador > n;
writeln ('O valor de ',n,'!: ',fatorial);
end.

9. Dados n e dois nmeros inteiros positivos i e j diferentes de 0, imprimir em
ordem crescente os n primeiros naturais que so mltiplos de i ou de j e ou de
ambos.
Exemplo: Para n = 6 , i = 2 e j = 3 a sada dever ser : 0,2,3,4,6,8.
program Multiplos;

var i, j, multi, multj, n: integer;

begin
readln(N, i, j);
multi := 0;
multj := 0;

while n <> 0 do
begin
if multi < multj
then begin
write(multi);
multi := multi + i
end
else if multj < multi
then begin
write(multj);
multj := multj + j
end
else begin
write(multi);
multi := multi + i;
multj := multj + j
end
n := n - 1
end
end.


10. Dizemos que um nmero natural triangular se ele produto de trs
nmeros naturais consecutivos.
Exemplo: 120 triangular, pois 4.5.6 = 120.
Dado um inteiro no-negativo n, verificar se n triangular.

Soluo em C
11. Dado um inteiro positivo p, verificar se p primo.

Soluo em C
12. Dados dois nmeros inteiros positivos, determinar o mximo divisor comum
entre eles usando o algoritmo de Euclides.
Exemplo:



program AlgoritmoDeMDC;

var a,b,r: integer;

begin
readLn(a, b);
write('MDC_(', a, ',', b, ')=_');
repeat
r:=a mob b;
a:=b;
b:=r
until r=0;
writeLn(a)
end.

13. (MAT 89) Dizemos que um inteiro positivo n perfeito se for igual soma
de seus divisores positivos diferentes de n.
Exemplo: 6 perfeito, pois 1+2+3 = 6.
Dado um inteiro positivo n, verificar se n perfeito.

Soluo em C
14. Um matemtico italiano da idade mdia conseguiu modelar o ritmo de
crescimento da populao de coelhos (1) atravs de uma seqncia de nmeros
naturais que passou a ser conhecida como seqncia de Fibonacci (2). O n-
simo nmero da seqncia de Fibonacci F
n
dado pela seguinte frmula de
recorrncia:

Faa um programa que, dado n, calcula F
n
.

program SequenciaFibonacci;
var
n, F1, F2, Funcao, Conta: integer;
begin
write ('Digite um numero n: ');
read (n);
Conta := 1;
F1 := 1;
F2 := 1;
Funcao := 0;
while (Conta <= n) do
begin
F1 := F2;
F2 := Funcao;
Funcao := F1+F2;
Conta := Conta+1
end;
writeln ('F de ',n,' = ',Funcao)
end.

15. Dizemos que um nmero i congruente mdulo m a j se i % m = j % m.

Exemplo: 35 congruente mdulo 4 a 39, pois
35 % 4 = 3 = 39 % 4.
Dados inteiros positivos n, j e m, imprimir os n primeiros naturais congruentes a
j mdulo m.


program CongruenteMdulo;

var n, i, m, j : Integer;

begin
i=0;
readLn(n, m, j);
while n<>0 do
begin
if i mod m = j mod m
then begin
writeLn('Natural=',i);
n:=n-1
end;
i:=i+1
end
end.

16. Dado um nmero natural na base binria, transform-lo para a base decimal.
Exemplo:
Dado 10010 a sada ser 18, pois 1. 2
4
+ 0. 2
3
+ 0. 2
2
+ 1. 2
1
+ 0. 2
0
= 18.
program 2p/10;

var num, pot2, final : Integer;

begin
readLn(Num);
final:=0;
pot2:=1;
while num<>0 do
begin
final:=(num mod 10)* pot2 +final;
num:=num div 10;
pot2:=pot2*2
end;
write(Final)
end.

17. Dado
um nmero natural na base decimal, transform-lo para a base binria.
Exemplo: Dado 18 a sada dever ser 10010.

program BaseBinaria;
var
n, {numero na base decimal}
Bin, {numero transformado para base 2}
q, {dividendo}
d, {divisor}
r, {resto}
Pot: integer;
begin
write ('Digite um numero natural: ');
read (n);
q := n;
Bin := 0;
Pot := 1;
while q>0 do begin
d := q div 2;
r := q mod 2;
q := d;
Bin := Bin+(r*Pot);
Pot := Pot*10;
end;
writeln ('O numero ',n,' escrito na base binaria: ',Bin);
end.

18. Dados trs nmeros naturais, verificar se eles formam os lados de um tringulo
retngulo.

program triangulo;

var a, b, c, aux : Integer;

begin
readLn(a,b,c);
if b>a
then begin
aux:=a;
a:=b;
b:=aux
end;
if c>a
then begin
aux:=a;
a:=c;
c:=aux
end;
if (a*a)=(b*b) + (c*c)
then writeLn('o triangulo retangulo');
else writeLn('o triangulo no retangulo')
end.

19. Dados trs nmeros, imprimi-los em ordem crescente.

program OrdemCrescente;
var
n1, n2, n3: integer;
begin
write ('Entre com tres numeros: ');
read (n1,n2,n3);
if n3>n1 then
begin
if n1>n2 then write ('A ordem crescente: ',n2,' ',n1,'
',n3)
else if n2<n3 then write('A ordem crescente: ',n1,'
',n2,' ',n3);
end;
if n1>n2 then
begin
if n2>n3 then write ('A ordem crescente: ',n3,' ',n2,'
',n1)
else if n3<n1 then write('A ordem crescente: ',n2,'
',n3,' ',n1);
end;
if n1<n2 then
begin
if n3<n1 then write ('A ordem crescente: ',n3,' ',n1,'
',n2)
else if n3<n2 then write('A ordem crescente: ',n1,'
',n3,' ',n2);
end;
end.

20. (FIS 88) Qualquer nmero natural de quatro algarismos pode ser dividido
em duas dezenas formadas pelos seus dois primeiros e dois ltimos dgitos.
Exemplos:
o 1297: 12 e 97.
o 5314: 53 e 14.
Escreva um programa que imprime todos os milhares (4 algarismos) cuja
raiz quadrada seja a soma das dezenas formadas pela diviso acima.
Exemplo: raiz de 9801 = 99 = 98 + 01.
Portanto 9801 um dos nmeros a ser impresso.

21. (POLI 87) Dados n e uma seqncia de n nmeros inteiros, determinar
quantos segmentos de nmeros iguais consecutivos compem essa seqncia.
Exemplo: A seguinte seqncia formada por 5 segmentos de nmeros iguais: 5, 2,
2, 3, 4, 4, 4, 4, 1, 1

program ContaSegmentos;

var n, anterior, atual, cont, i : Integer;

begin
readLn(n);
readLn(anterior);
cont:=1;
for i:=2 to n do
begin
readLn(atual);
if atual <> anterior
then begin
cont:= cont+1;
anterior:=atual
end
end;
writeLn(cont)
end.

22. (POLI 89) Dados n e uma seqncia de n nmeros inteiros, determinar o
comprimento de um segmento crescente de comprimento mximo.
Exemplos:
Na seqncia 5, 10, 3, 2, 4, 7, 9, 8, 5 o comprimento do segmento
crescente mximo 4.
Na seqncia 10, 8, 7, 5, 2 o comprimento de um segmento crescente mximo 1.

program SegmentoCrescente;
var
n, {numero de elementos da sequencia}
Seq, {sequencia de numeros inteiros}
SeqAnt, {numero anterior da sequencia}
Comp, {comprimento de um segmento}
CompMax, {comprimento do segmento maximo}
Conta: integer;
begin
write ('Entre com um numero: ');
read (n);
write ('Digite uma sequencia de ',n,' numeros inteiros: ');
Comp := 1;
SeqAnt := 0;
CompMax := 0;
for Conta:=1 to n do begin
read (Seq);
if Seq>SeqAnt then Comp := Comp+1
else Comp := 1;
if CompMax < Comp then CompMax := Comp;
SeqAnt := Seq
end;
writeln ('O comprimento do segmento crescente maximo: ',CompMax)
end.

23. Dizemos que um nmero natural n palndromo (3) se
o 1 algarismo de n igual ao seu ltimo algarismo,
o 2 algarismo de n igual ao penltimo algarismo,
e assim sucessivamente.
Exemplos:
o 567765 e 32423 so palndromos.
o 567675 no palndromo.
Dado um nmero natural n > 10 , verificar se n palndrome.
program polindrome;

var num, aux, reverso : longInt;

begin
readLn(num);
aux:=num;
reverso:=0;
while aux<>0 do
begin;
reverso:=reverso*10+(aux mod 10);
aux:=aux div 10
end;
if reverso=num
then
writeLn('o # palindromo')
else
writeLn('o # no palindromo')
end.

24. So dados dois nmeros inteiros positivos p e q, sendo que o nmero de
dgitos de p menor ou igual ao nmero de dgitos de q. Verificar se p um
subnmero de q.
Exemplos:
o p = 23, q = 57238, p subnmero de q.
o p = 23, q = 258347, p no subnmero de q.

25. Simule a execuo do programa abaixo destacando a sua sada:
int main()
{
int a, b, total, soma, termo, i;

printf("Digite um par de numeros: ");
scanf("%d %d", &a, &b);
printf("(%d, %d)\n", a, b);
total = 0;
soma = 0;
while (a != 0) {
total = total + 1;
termo = 1;
for (i = 1; i <= b; i++)
termo = termo * a;
printf("Resp = %d\n", termo);
soma = soma + termo;
printf("Soma = %d\n", soma);
printf("Digite um par de numeros: ");
scanf("%d %d", &a, &b);
printf("(%d, %d)\n", a, b);
}
printf("Total de pares: %d\n", total);
return 0;
}
Dados:
2 3
5 2
7 1
0 5
3 2

Resultado da Simulao

Você também pode gostar