I want to know how to separate 2024 into 2 and 0 and 2 and 4. I already know how to do num2str-'0'. However, it cannot be used because there is a gap. Please help me.

4 Kommentare

Voss
Voss am 31 Mär. 2024
Where is a gap?
윤호
윤호 am 31 Mär. 2024
function v = MySecret( y )
v=unique(num2str(factor(y))-'0')
If y=2024, the value is output as -16 1 2 3. But what I want is 1 2 3.
윤호
윤호 am 31 Mär. 2024
This is a question.
Write a function v = MySecret(y) that returns a vector v that arranges each number that comes out in ascending order when a number y is prime factorized.
Use Examples
>> v = MySecret(2024)
v =
1 2 3
If we sub-factorize 2024 given as an argument, it is 2x2x2x11x23, so the numbers used are 1, 2, and 3.
Voss
Voss am 31 Mär. 2024
Sounds like they are asking for numbers (2, 11, 23) not digits (1, 2, 3).

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Voss
Voss am 31 Mär. 2024

0 Stimmen

function v = MySecret( y )
str = num2str(factor(y));
str(str == ' ') = []; % remove spaces
v = unique(str-'0');

3 Kommentare

윤호
윤호 am 31 Mär. 2024
Is there anything smaller in size?
I want an extremely small code.
Voss
Voss am 31 Mär. 2024
Bearbeitet: Voss am 31 Mär. 2024
Fewer lines:
function v = MySecret( y )
str = num2str(factor(y));
v = unique(str(str ~= ' ')-'0');
Fewer lines still:
function v = MySecret( y )
v = unique(strrep(num2str(factor(y)),' ','')-'0');
Voss
Voss am 31 Mär. 2024
If they want the prime factors, rather than their digits, then of course it's just:
function v = MySecret( y )
v = unique(factor(y));

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Gefragt:

am 31 Mär. 2024

Bearbeitet:

am 31 Mär. 2024

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by