请问这种做法是正确的吗
查看原帖
请问这种做法是正确的吗
465161
Powerful_25楼主2023/1/4 17:34
#include<algorithm>
#include<iostream>
#include<string>
#include<cstdio>
#include<cmath>
using namespace std;
long long n,sz[100005],ans,maxx=0;
long long gcd(long long x,long long y)
{
	if(y==0) return x;
	return gcd(y,x%y);
}
long long lcm(long long x,long long y)
{
	return x*y/gcd(x,y);
}
int main()
{
	scanf("%lld",&n);
	for(long long i=1;i<=n;i++) scanf("%lld",&sz[i]);
	ans=sz[1];
	for(long long i=2;i<=n;i++)
	{
		ans=lcm(ans,sz[i]);
	}
	ans--;
	for(long long i=1;i<=n;i++)
	{
		maxx+=ans%sz[i];
	}
	printf("%d\n",maxx);
	return 0;
}

RT。

2023/1/4 17:34
加载中...