解题思路:
两点需要注意:
1.输入的数如果本身是质数那么该数本身就是其最大质因子。
2.还有一点比较坑人就是如果输入的数中有多个数的最大质因子都是最大,即答案有多个,那么要选取最后一个数作为答案,否则错误。
参考代码:
#include<iostream> #include<cmath> using namespace std; int is_prime(int m) //判断是否是质数 { if(m<=1) return 0; int k=floor(sqrt(m)+0.5); for(int i=2;i<=k;i++) if(m%i==0) return 0; return 1; } int f(int n) //求一个数的最大质因数 { int max=0; for(int i=2;i<=n;i++) if(n%i==0&&is_prime(i)==1) { if(i>max) max=i; } return max; } int main() { int n,max=0,m=0; cin>>n; int a[n]; for(int i=0;i<n;i++) cin>>a[i]; for(int i=0;i<n;i++) { if(f(a[i])>=max) { max=f(a[i]); m=a[i]; } } cout<<m; return 0; }
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:863 |
【蟠桃记】 (C语言代码)浏览:2263 |
IP判断 (C++代码)浏览:728 |
2005年春浙江省计算机等级考试二级C 编程题(3),复杂度最低的方法没有之一!!!!!浏览:856 |
川哥的吩咐 (C++代码)浏览:1076 |
c primer plus 第十二章 12.1小节浏览:400 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:660 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:818 |
用筛法求之N内的素数。 (C语言代码)浏览:685 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:582 |