-2
我想將任意整數因式分解爲兩個整數並將結果保存在R.例如,28
應保存爲1 X 28, 28 X 1, 2 X 14, 14 X 2, 4 X 7, 7 X 4
。將整數因式分解爲R中的兩個整數
我想將任意整數因式分解爲兩個整數並將結果保存在R.例如,28
應保存爲1 X 28, 28 X 1, 2 X 14, 14 X 2, 4 X 7, 7 X 4
。將整數因式分解爲R中的兩個整數
我們可以試着
v1 <- 28
x1 <- seq_len(v1)
v2 <- combn(x1[v1%%x1==0], 2)
v3 <- v2[,apply(v2, 2, FUN = prod) ==28]
apply(cbind(v3, apply(v3, 2, rev)), 2, paste, collapse="*")
#[1] "1*28" "2*14" "4*7" "28*1" "14*2" "7*4"
我們可以使用該功能intfac
(整數分解)
intfac <- function(x) {
## we will factorize x = a * b
a <- 1:floor(sqrt(x))
a <- a[x %% a == 0]
b <- x/a
## add symmetry and return
paste(c(a,b), c(b,a), sep = " * ")
}
實施例:
intfac(28)
# [1] "1 * 28" "2 * 14" "4 * 7" "28 * 1" "14 * 2" "7 * 4"
在平方數的情況下,例如,25,你的函數會返回平方根因子'「5 * 5」'兩次。另外,這兩種解決方案都不會重現OP給出的命令(不確定這與OP是否相關)。 – Uwe
感謝您的幫助,但想這個問題是這樣的 ** A ** 100 ** 28乙** ** ç1X7 ** ,我希望它是這樣 一個10X10 b 一個1×100 b 一個100X1 b 一個50X2 b 一個2X50 b 一個25X4 b 一個4X25 b ç1X7 - b是標誌,如果我們能夠打破它SA 1X7不能被進一步細分,因此標誌值應是空的 –
這是我想要的上述問題,但我希望實際的輸出看起來像我在評論中的評論 –