1.【刷题】
【知识点与思路】
用乘法求余公式,暴力计算最大的m。
ans=1,2,6,24,120...。计算这些阶乘的和是否是能被ans其整除,也就是判断:
A[1]!%ans+A[2]!%ans+....+A[n]!%ans==0
要是不行的话,就输出当前ans对应的阶乘数。
【代码】
package wdy1024.lanqiaobei_test;
import java.util.Scanner;
public class th {
public static void main(String[] args){
Scanner cin =new Scanner(System.in);
int n=cin.nextInt();
int a[]=new int[n+10];
for(int i=0;i<n;i++){
a[i]=cin.nextInt(); }
long p=1;//m的阶数
long ans=1;//m!
while(true) {
long sum=0;
for(int i=1;i<=n;i++) {
long res=1;
for(int j=2;j<=a[i];j++) {
res=res*j%ans;
}
sum=(sum+res)%ans; //算和
}
if(sum==0) {
ans*=p;
p++;
}else {
break;
}
}
System.out.println(p);
}
}