2016-07-07 70 views

回答

1

我們可以試着

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" 
1

我們可以使用該功能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" 
+0

在平方數的情況下,例如,25,你的函數會返回平方根因子'「5 * 5」'兩次。另外,這兩種解決方案都不會重現OP給出的命令(不確定這與OP是否相關)。 – Uwe

+0

感謝您的幫助,但想這個問題是這樣的 ** A ** 100 ** 28乙** ** ç1X7 ** ,我希望它是這樣 一個10X10 b 一個1×100 b 一個100X1 b 一個50X2 b 一個2X50 b 一個25X4 b 一個4X25 b ç1X7 - b是標誌,如果我們能夠打破它SA 1X7不能被進一步細分,因此標誌值應是空的 –

+0

這是我想要的上述問題,但我希望實際的輸出看起來像我在評論中的評論 –

相關問題