暴力
#include <bits/stdc++.h>
using namespace std;
long long gcd(long long a,long long b)
{
if(b==0)return a;
return gcd(b,a%b);
}
int main()
{
long long a[105];
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
a[i]=i;
}
for(int i=2;i<=n;i++)
{
a[i]=(a[i-1]*a[i])/gcd(a[i-1],a[i]);
}
cout<<a[n];
return 0;
}
非暴力
大数相乘
#include <bits/stdc++.h>
using namespace std;
int num[100],a[105];
int main() {
for(int i=1; i<=100; i++) {
a[i]=i;
}
for(int i=1; i<=100; i++) {
for(int j=i+1; j<=100; j++) {
if(a[j]%a[i]==0) {
a[j]/=a[i];
}
}
}
int n;
cin>>n;
num[0]=1;
int t,len=0;
for(int i=1; i<=n; i++) {
t=0;
for(int j=0; j<=len; j++) {
t+=num[j]*a[i];
num[j]=t%10;
t/=10;
}
while(t) {
num[++len]=t%10;
t/=10;
}
}
for(int i=len; i>=0; i--) {
cout<<num[i];
}
return 0;
}