计算要拆分的字符串的最大偶数长度

时间:2015-03-01 01:23:34

标签: c++ string split

我知道我想要什么,但我不知道是否有技术名称或如何计算它。

假设我有一个字符串:

ABCDEFGHI

此字符串可以均匀分割为" MAXIMUM"每个子串3个字符。

基本上,我试图找出如何将字符串均匀分割成其最大子长度。一个25个字符的字符串可以均匀地分成5个部分,每个部分由5个字符组成。如果我试图将它分成4或6块,我会有一个奇数长度的字符串(一个字符串的大小与其他字符串不同)。

  • 9个字符的字符串可以分成3个,每个3个字符。
  • 10个字符的字符串可以分成2个,每个5个字符。
  • 一个25个字符的字符串可以分成5个,每个5个字符。
  • 一个15个字符的字符串可以分成3个,每个5个字符或5个3个字符。
  • 11个字符的字符串不能分割,因为一个字符串总是比另一个字符串大。

那我该怎么做呢?我曾经想过使用平方根,但是对于一串" 10"字符。适用于9和25就好了。

有什么想法吗?这样的东西有技术名称吗?我想到了#34;最大的除数",但我不太确定。

2 个答案:

答案 0 :(得分:0)

嗯......让我看看...我认为如果我做对了,你想验证某个数字(字符串的长度)是否为素数:)

第一个想法是: 1)得到字符串的长度,做一个循环,你把字符串的长度除以2的所有数字到(字符串的长度/ 2)[你需要检查这是否(字符串的长度/ 2)是一个整体数字也是,如果没有调整;)] 2)如果至少有一个数字除以它,bam。 (你通过验证分割后是否有余数来检查这个) 3)如果没有,你得到了自己的素数。对不起,没有分区。

当然,这种方法对于很长的字符串来说不是很快......只是一个想法。

答案 1 :(得分:0)

它只是关于素数和复合数,一个基本的数学概念。您需要的算法是Primality Test