How to resolve the algorithm Perfect numbers step by step in the Mathematica / Wolfram Language programming language
How to resolve the algorithm Perfect numbers step by step in the Mathematica / Wolfram Language programming language
Table of Contents
Problem Statement
Write a function which says whether a number is perfect.
A perfect number is a positive integer that is the sum of its proper positive divisors excluding the number itself. Equivalently, a perfect number is a number that is half the sum of all of its positive divisors (including itself).
Note: The faster Lucas-Lehmer test is used to find primes of the form 2n-1, all known perfect numbers can be derived from these primes using the formula (2n - 1) × 2n - 1. It is not known if there are any odd perfect numbers (any that exist are larger than 102000). The number of known perfect numbers is 51 (as of December, 2018), and the largest known perfect number contains 49,724,095 decimal digits.
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Perfect numbers step by step in the Mathematica / Wolfram Language programming language
The code you provided is a Wolfram program that defines a function PerfectQ
which takes an integer as an argument and returns True
if the integer is a perfect number, and False
otherwise. A perfect number is a number whose sum of its proper divisors is equal to the number itself.
The function Divisors
takes an integer as an argument and returns a list of all of its divisors. The function Total
takes a list of numbers as an argument and returns the sum of the numbers in the list.
The function Position
takes two arguments: a list and a pattern. It returns a list of the positions of the elements in the list that match the pattern.
The code first defines the function PerfectQ
. Then, it calls the function PerfectQ
on the number 496 and prints the result, which is True
. Then, it calls the function PerfectQ
on the number 128 and prints the result, which is False
. Finally, it calls the function PerfectQ
on the range of numbers from 1 to 10000 and prints the positions of the numbers that are perfect numbers. The result is a list of the numbers 6, 28, 496, and 8128.
Source code in the wolfram programming language
PerfectQ[i_Integer] := Total[Divisors[i]] == 2 i
PerfectQ[496]
PerfectQ[128]
Flatten[PerfectQ/@Range[10000]//Position[#,True]&]
True
False
{6,28,496,8128}
You may also check:How to resolve the algorithm Date manipulation step by step in the jq programming language
You may also check:How to resolve the algorithm Modular exponentiation step by step in the gnuplot programming language
You may also check:How to resolve the algorithm Knapsack problem/0-1 step by step in the Julia programming language
You may also check:How to resolve the algorithm Roots of a function step by step in the Maxima programming language
You may also check:How to resolve the algorithm Matrix transposition step by step in the Klong programming language