C++ 计算C+中的汉明序列+;(只有2、3和5作为分隔符的数字序列)

C++ 计算C+中的汉明序列+;(只有2、3和5作为分隔符的数字序列),c++,math,hamming-numbers,C++,Math,Hamming Numbers,可能重复: 我一直在为这个问题进行头脑风暴,但我就是想不出来。我需要解决以下问题: 生成以下序列,并在 序列 2、3、4、5、6、8、9、10、12、15等等。。。。。序列只有素数 2,3,5 我需要使用基本的C++,如,而不是,如果,等等,没有什么幻想。我不能简单地使用数组,因为我还不太了解它们,我想了解解决方案的代码 我不是要求一个完整的解决方案,但我要求的是指导,以通过这。。。求你了 我的问题是,如果序列中的数字可以被除2、3和5以外的任何其他素数整除,我就不知道如何检查这个数字 另外,

可能重复:

我一直在为这个问题进行头脑风暴,但我就是想不出来。我需要解决以下问题:

生成以下序列,并在 序列

2、3、4、5、6、8、9、10、12、15等等。。。。。序列只有素数 2,3,5

我需要使用基本的C++,如,而不是,如果,等等,没有什么幻想。我不能简单地使用数组,因为我还不太了解它们,我想了解解决方案的代码

我不是要求一个完整的解决方案,但我要求的是指导,以通过这。。。求你了

我的问题是,如果序列中的数字可以被除2、3和5以外的任何其他素数整除,我就不知道如何检查这个数字

另外,假设我检查的数字如下:

for(int i=2; i<n; i++){
    if(i%2==0){
        cout<<i<<", ";
    }else if(i%3==0){
        cout<<i<<", ";
    }else if(i%5==0){
        cout<<i<<", ";
    }

for(int i=2;i将下一个i值存储在临时变量中,然后尽可能长地将其除以2(例如,只要i%2==0)。然后尽可能长地除以3。然后除以5。然后检查,剩下的是什么。

代码的问题是,您只需检查一个基本因子,而不是全部

以14为例。您的代码只检查2,3或5是否是14的因子,这并不完全是您所需要的。事实上,您发现2是14的因子,但正如您所说,另一个因子是7。您缺少的是进一步检查7是否只有因子2,3和5(事实并非如此).你需要做的是消除所有因素2、3和5,看看还有什么剩余

让我们举两个例子:60和42

60人

从因素2开始

  • 60%2=0,现在检查60/2=30
  • 30%2=0,现在检查30/2=15
  • 15%2=1,因此不再有2的因子
继续第三个因素

  • 15%3=0,现在检查15/3=5
  • 5%3=2,因此不再有3的因子
以因子5结束

  • 5%5=0,现在检查5/5=1
  • 1%5=1,因此不再有5的因子
我们以1结束,所以这个数字是序列的一部分

适用于42人

同样,从因素2开始

  • 42%2=0,现在检查42/2=21
  • 21%2=1,因此没有更多的因子2
继续第三个因素

  • 21%3=0,现在检查21/3=7
  • 7%3=1,因此不再有3的因子
以因子5结束

  • 7%5=2,因此不再有5的因子
我们的结果是7(与1不同),所以这个数字不是序列的一部分

因此,在您的实现中,您可能应该在for循环中嵌套3个while循环来反映这种推理。

这是怎么回事

bool try_hamming(int n)
{
    while(n%2 == 0)
    {
        n = n/2;
    }
    while(n%3 == 0)
    {
        n = n/3;
    }
    while(n%5 == 0)
    {
        n = n/5;
    }
    return n==1;
}
当n是一个hamming numer时,应该返回true,否则返回false

 #include<iostream>
 using namespace std;
 main()
 {
      for(int i=2;i<100;++i)
      {
          if(try_hamming(i) )
          cout<< i <<",";
       }
      cout<<end;
  }
#包括
使用名称空间std;
main()
{

对于(int i=2;我的代码出了什么问题?精确地说,完全是由同一个人复制的。好吧,所以我创建了3个while循环,但我不知道如何从那里开始……我把一切都弄明白了!老兄,这让我大脑紧张,但你确实帮了我很多,非常感谢。我刚刚完成了你编写的nd试图解决这个问题。非常感谢!是的,这和我现在得到的差不多。我在一个函数中做了一个,但这个也可以。