Excel 公式显示数字的最小除数

Excel 公式显示数字的最小除数

到目前为止,如果数字是质数,我就能打印它,否则就打印“”:

=IF(A2=2,"Prime",IF(AND(MOD(A2,ROW(INDIRECT("2:"&ROUNDUP(SQRT(A2),0))))<>0),A2,""))

如果数字是复合数,是否可以改变公式来打印其最小除数?

答案1

您的测试AND(MOD(A2,ROW(INDIRECT("2:"&ROUNDUP(SQRT(A2),0))))<>0)将返回任何不能整除另一个数字的数字。所以我们想要相反的结果:

MOD(A3,ROW(INDIRECT("2:"&ROUNDUP(SQRT(A3),0))))=0

但我们想要的是满足以下条件的最小数字:

MIN(IF(MOD(A3,ROW(INDIRECT("2:"&ROUNDUP(SQRT(A3),0))))=0,ROW(INDIRECT("2:"&ROUNDUP(SQRT(A3),0)))))

将其放在内部 IF 的 false 位置。

它将从 2 迭代到数字的平方并返回可以整除该数字的最小值。

所以:

=IF(A2=2,"Prime",IF(AND(MOD(A2,ROW(INDIRECT("2:"&ROUNDUP(SQRT(A2),0))))<>0),A2,MIN(IF(MOD(A2,ROW(INDIRECT("2:" & A2)))=0,ROW(INDIRECT("2:" & A2))))))

这是一个数组公式,退出编辑模式时必须使用 Ctrl-Shift-Enter 而不是 Enter 进行确认。

在此处输入图片描述

相关内容