C++ 在C+中查找任意给定数目的GCF+;

C++ 在C+中查找任意给定数目的GCF+;,c++,math,C++,Math,我对C++没有太多的了解。我的任务是创建一个代码来确定任何用户输入号码的GCF。见附图 以下是我对如何解决这个问题的想法。如流程图所示。这对我来说很有意义。但我可能错了。所以请告诉我这是否合理 我在编码过程中遇到的一个问题是,我无法找到一种方法来编写数组,因为它的“长度”取决于一个特定数字的多少个因子 编辑 在我看来,人们似乎误解了我在原帖中的意图。我想要的是帮助,不是答案。我已经写了代码,我的最好的能力(希望它显示我的知识在C++中,或缺乏它)。//中的所有内容都意味着我要输入的是代码,但我

我对C++没有太多的了解。我的任务是创建一个代码来确定任何用户输入号码的GCF。见附图

以下是我对如何解决这个问题的想法。如流程图所示。这对我来说很有意义。但我可能错了。所以请告诉我这是否合理

我在编码过程中遇到的一个问题是,我无法找到一种方法来编写数组,因为它的“长度”取决于一个特定数字的多少个因子

编辑 在我看来,人们似乎误解了我在原帖中的意图。我想要的是帮助,不是答案。我已经写了代码,我的最好的能力(希望它显示我的知识在C++中,或缺乏它)。//中的所有内容都意味着我要输入的是代码,但我在输入时遇到了问题。非常感谢您的帮助。

尝试以下方法:

int gcd(int a, int b) 
{
    return b == 0 ? a : gcd(b, a % b);
}
#include <iostream>
#include <vector>
std::vector<int> findFactors(int n){
    std::vector<int> factorVect;
    for (int i =0; i<=n;i++){
        if (n%i==0){
            factorVect.push_back(i);
        }

    }
    return factorVect;
}

int main()
{
    int n;
    std::cout<<"Enter n";
    std::cin>>n;
    int m;
    std::cout<<"Enter m";
    std::cin>>m;
    std::vector<int> nfactors=findFactors(n);
    std::vector<int> mfactors=findFactors(m);
    std::vector<int> gcdfactors;
    int gcd=1;
    //get factor intersection of nfactors and mfactors, and store in gcdfactors
    for(int i=0;i<=gcdfactors.size();i++){
        gcd*=gcdfactors[i];
    }
    std::cout<<gcd;
    return 0;
}
#包括
#包括
标准::向量findFactors(int n){
std::向量因子vect;

对于(int i=0;i非常弱的问题。除非你修改以显示更大的努力,否则会被打败。当你有一个数组但不知道它应该有多大时,那么你需要一个
std::vector
我不知道什么是“弱问题”意思是。我应该展示我的代码吗?@MawalLamas,那么除了
std::vector
你还需要写一些代码吗?这个网站不是“免费解决我的编程任务”。我们通常很乐意帮助那些已经显示出自己解决问题的实际努力的人。旁注:正如你从这方面关于GCD的其他答案中所看到的,在现实生活中,没有人通过第一次将数字分解为素数因子来计算GCD。为什么这样做很弱:它看起来像是零努力分配转储。我们不知道你对一个问题做了什么尝试解决这个问题。我已经让你的图像更容易被看到,但是作业规范…好吧,最好选择一个问题并提出一个关于它的问题。4个任务,4个问题。希望少一些,因为在任务1结束时,当你点击任务2时,你应该有几个语法问题。任务3,完全不同的野兽,但是看一看在prime筛选算法,使您的生活更轻松。任务4,不是编程问题,不应该出现在这里。建议展开
if
,并使用更具描述性的变量名,使您刚才所做的事情变得非常明显。否则,您会出现无法解释的现象,这只会导致。还要记住,OP需要一个列表。哇!w喔!哇!这不是我的目标。我不想让别人为我做这件事。不过我真的很感激。我不想让人觉得我忘恩负义,但我也不想让人觉得我很懒。这就是为什么我仍然漏掉了一部分!