How can I find the multiplicity of a divisor N.
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
A123456
am 18 Dez. 2015
Kommentiert: John D'Errico
am 19 Dez. 2015
So say N=8, and 8=2^3 how would I get this in Matlab?
0 Kommentare
Akzeptierte Antwort
Guillaume
am 18 Dez. 2015
Bearbeitet: Guillaume
am 18 Dez. 2015
factor(8)
Possibly, your question is not clear.
2 Kommentare
the cyclist
am 18 Dez. 2015
factorList = factor(100);
uniqueFactors = unique(factorList);
multiplicity = histcounts(factorList,[uniqueFactors Inf])
Weitere Antworten (2)
the cyclist
am 18 Dez. 2015
log2(8)
Logs in base 2 and 10 are available natively. You can get arbitrary bases by using math.
John D'Errico
am 18 Dez. 2015
Bearbeitet: John D'Errico
am 18 Dez. 2015
Consider the number N = 8.
Divide N by 2, checking the remainder. The remainder is the non-integer, fractional part in thedivision. If N/2 is an integer, so the remainder is zero, then N is divisible by 2.
Repeat until the remainder is non-zero. So this is just a while loop. Count the number of successful divisions with a zero remainder. (This is a case where we can safely test for an exact zero value of the remainder.)
In the case of N = 8, we have 8/2 = 4. The remainder is zero. So now repeat, 4/2 = 2. Again, the remainder is 0. One more time, and we have 2/2 = 1. The remainder was once more zero.
On the final pass through the loop, we will see that 1/ 2 = 0.5. The remainder was non-zero. We went through the loop 4 times, failing on the 4th time. So the number 8 has exactly 3 factors of 2.
I'll give you a code fragment that embodies the basic idea, although you need to consider how this might need to change if you wish to count the number of factors of 3 a number contains, or some other prime.
CountFacs = 0;
r = 1;
while r ~= 0
N = N/2;
r = rem(N,1);
if r == 0
CountFacs = CountFacs + 1;
end
end
2 Kommentare
John D'Errico
am 19 Dez. 2015
Think about it. Read the code. What did you want to compute? What is the value of CountFacs AFTER the code block terminates?
Siehe auch
Kategorien
Mehr zu Elementary Math finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!