Advertisement
Zeronomoji

Trabalho Introdução Engenharia Grupo 3

Jun 25th, 2022 (edited)
2,756
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Octave 1.19 KB | None | 0 0
  1. clearvars; clc; close all;
  2.  
  3. %Define se um numero n é primo ou não
  4. function P = definirprimo (num)
  5.   for i = 2:sqrt(num)
  6.     if (mod(num, i) == 0)
  7.       P = false;
  8.       return;
  9.     endif
  10.   endfor
  11.   P = true;
  12. endfunction
  13.  
  14. %Define se um número n é perfeito ou não
  15. function PERF = definirperfeito (ent)
  16.   listatest = zeros(1, ent);
  17.   i = 1;
  18.   while i <= ent / 2
  19.     if (mod(ent, i) == 0)
  20.       listatest(i) = i;
  21.     endif
  22.     i += 1;
  23.   endwhile
  24.   if sum(listatest) == ent
  25.     PERF = true;
  26.   else
  27.     PERF = false;
  28.   endif
  29. endfunction
  30.  
  31. %Obtém os números perfeitos até o valor desejado, no caso 4
  32. perfeitosdesejados = 4;
  33. perfencontrados = 0;
  34. perfeitos = zeros(perfeitosdesejados, 1);
  35. n = 1;
  36. while perfencontrados < perfeitosdesejados
  37.   if definirperfeito(n) == true
  38.     perfencontrados += 1;
  39.     perfeitos(perfencontrados) = n;
  40.   endif
  41.   n += 1;
  42. endwhile
  43.  
  44. display(perfeitos);
  45.  
  46. %Obtém a quantidade de números primos anteriores ao número perfeito desejado
  47. primotestando = perfeitos(perfencontrados);
  48. numprimos = 0;
  49. while primotestando > 1
  50.   if (definirprimo(primotestando) == true)
  51.     numprimos += 1;
  52.   endif
  53.   primotestando -= 1;
  54. endwhile
  55.  
  56. display(numprimos);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement