>n; for(int i=0;-6ren">
gpt4 book ai didi

c++ - 找出除 "1"作为公因数以外的 n 个数的公因数

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:05:12 25 4
gpt4 key购买 nike

这是我用 gcc 编写的代码。不知道是我的逻辑不正确还是我犯了其他错误。每次输出都为 0。

int main()
{
int n,a[20],count=0;
cin>>n;

for(int i=0;i<n;i++)
{
cin>>a[i];
}

for(int k=0;k<n;k++)
{
int c=0;
for(int j=2;j<n;j++)
{
if(a[k]%j==0)
{
c++;
}
else
{
continue;
}
}
if(c==n)
{
count++;
}
}
cout<<count;
}

最佳答案

你的循环顺序错了。您正在检查任何数字是否有 n 个分隔符。

尝试交换循环。然后计数将是除以输入的数字的数量。

您的上限也有误。您需要尽可能高的分频器。

int max_divider = 2;
for (i = 0; i < n; i++) {
if (a[i] > max_divider)
{
// Naive approach
max_divider = a[i];
}
}
// For each number 2..max_divider
for(int j=2;j <= max_divider;j++)
{
int c=0;
for(int k=0;k<n;k++)
{
if(a[k]%j==0)
{
c++;
}
else
{
continue;
}
}
if(c==n)
{
count++;
}
}

关于c++ - 找出除 "1"作为公因数以外的 n 个数的公因数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44455092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com