Algorithm 用素因子分解检验可除性

Algorithm 用素因子分解检验可除性,algorithm,math,Algorithm,Math,为了检查一个整数(比如A)被另一个整数(比如B)整除,我尝试了一种方法,通过分解B并检查A是否可被B的所有素数因子整除。但是我不确定它是否正确?你能建议一下可以做什么吗?例如,如果我们有一个非常大的整数,比如说10^100,我们想检查它是否可以被另一个整数整除,比如说200,那么我试着看看10^100是否可以被2和5整除(注意最后一个数字)。 如果A足够小,我们可以直接检查A%B==0,但我尝试了更大的数字。 谢谢,您必须计算素数在B的因式分解中出现的次数,并确保它在A的因式分解中出现的次数至少

为了检查一个整数(比如A)被另一个整数(比如B)整除,我尝试了一种方法,通过分解B并检查A是否可被B的所有素数因子整除。但是我不确定它是否正确?你能建议一下可以做什么吗?例如,如果我们有一个非常大的整数,比如说10^100,我们想检查它是否可以被另一个整数整除,比如说200,那么我试着看看10^100是否可以被2和5整除(注意最后一个数字)。 如果A足够小,我们可以直接检查A%B==0,但我尝试了更大的数字。
谢谢,

您必须计算素数在
B
的因式分解中出现的次数,并确保它在
A
的因式分解中出现的次数至少相同

200=23*52。那么
A
可以被200整除,当且仅当它可以被23和52整除


除非你已经知道了因式分解,否则因式分解
A
要比仅仅除以
B
慢得多。原因是,要将
A
完全分解,需要许多试算师(或同等的工作),而只需要一个试算师就可以检查
B
的可除性。毕竟,考虑<代码> b>代码>为Prime的情况:当你只需要测试代码< B>代码>是其中之一时,你就找到了<代码> > <代码>的所有主要因素。这是关于整数因子分解的最好主意,写在这里是为了让更多的人知道和参与

整数分解的一种新方法 1+2+3+4+k=Ny(k
真金不怕火,你可以测试
1+2+3+…+k=Ny(kit不正确。举个例子,A=22,B=4。B的素数是2。所以你的算法会给出错误的答案使用任意精度长度算法库我不明白。为什么不直接测试
(A mod B==0)
?@Andrew:因为我相信如果这个数字对于不支持BigInt的语言来说太大,我们就不能这么做。我仍然不明白,如果该语言不支持BigInt,你用什么类型存储A和B?我自己也在想分解的有用性。我只看到它对一些小因素有帮助(比如2,很明显)@Neil:是的,如果
A
B
是根据它们的主要因素生成和存储的,那么这种方法会很有用。否则可能不会。请查看页面了解如何在您的帖子中包含链接。