解题思路

1.  #define M(a,b) (a>b?a:b)  这是一个宏定义,用于返回两个数中的较大值。

2.  searchmax  函数用于寻找一个数的最大质因数。通过从 2 开始递增的循环,判断当前数能否整除给定的数,如果能整除则更新给定的数,并记录当前的除数(可能是质因数)。

3. 在  main  函数中:

   首先读取整数  n  ,表示要输入的数字个数。

   然后通过一个循环读取  n  个数字。

   如果只有一个数字( n == 1 ),直接输出该数字。

   对于多个数字,通过比较每个数字的最大质因数,更新最大质因数  max  和对应的数字  res  。

   最后输出最大质因数对应的数字  res



注意事项:

参考代码:

#include<stdio.h>

#define M(a,b) (a>b?a:b)

int searchmax(int n) {

    int i = 2;

    int res = 1;

    while (n > 2) {

        if (n%i == 0) {

            n /= i;

            res = i;

        }  

        else

            i++;

    }

    return res;

}

int main()

{

    int n,num,temp,max=-9999,res;

    scanf("%d",&n);

    for(int i=0;i<n;i++){

        scanf("%d",&num);

        if(n==1){

            printf("%d",num);

            return 0;

        }

        if(i==0) temp=2;

        else if(searchmax(num)>max){

            max=searchmax(num);

            res=num;

        }

    }

    printf("%d",res);

    return 0;

}

点赞(1)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论