首页 > 试题广场 >

小红的k次方

[编程题]小红的k次方
  • 热度指数:484 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}小红拿到了一个长为  的数组 ,定义数组中所有元素的乘积为 
\hspace{15pt}小红想知道,最大的满足  是  的  次方的倍数(形式化的,x\ mod\ 30^k=0) 的  是多少?

输入描述:
\hspace{15pt}第一行输入一个整数 
\hspace{15pt}第二行输入  个整数


输出描述:
\hspace{15pt}输出一个整数,代表最大的 
示例1

输入

4
30 15 2 7

输出

2

说明


#include <stdio.h>                   //已知30=2*5*3
int min(int a, int b, int c){
    if(a<b&&a<c){
        return a;
    }
    else if(b<a&&b<c){
        return b;
    }
    else{
        return c;
    }
}
int main() {
    int n;
    scanf("%d",&n);
    int A[n];
    int n_5=0,n_3=0,n_2=0;
    for(int i=0;i<n;i++){
        scanf("%d",&A[i]);
        while(A[i]%2==0||A[i]%3==0||A[i]%5==0){        //判断这个数的最简因子有多少个2,3,5
            if(A[i]%2==0){
            n_2++;
            A[i]/=2;
        }
        else if(A[i]%3==0){
            n_3++;
            A[i]/=3;
        }
        else if(A[i]%5==0){
            n_5++;
            A[i]/=5;
        }
        }
        
    }
    printf("%d",min(n_2,n_3,n_5));//最小值才能出现足够的2*5*3=30

    return 0;
}

发表于 2026-01-22 14:43:50 回复(0)