1. 程式人生 > >計蒜客---最大質因數

計蒜客---最大質因數

格式 set -s margin style 輸出格式 sam ring -1

給出N個數字,試求質因數最大的數字。

輸入格式:

第一行,一個整數N,表示數字個數。 接下來N行,每行一個整數A_i,表示給出的數字。

輸出格式:

一個整數,表示質因數最大的數字。

N < = 5000 , A_i < = 20000

舉例

38和12

38=19*2, 12=2*3*3, 38最大的是19 12最大的是3, 所以本數據要輸出38。

樣例輸入

4
36
38
40
42

樣例輸出

38

 1 #include <iostream>
 2 #include <algorithm>
 3
#include <cstring> 4 #include <cstdio> 5 #include <vector> 6 #include <cstdlib> 7 #include <iomanip> 8 #include <cmath> 9 #include <ctime> 10 #include <map> 11 #include <set> 12 #include <queue> 13 using namespace std; 14 #define
lowbit(x) (x&(-x)) 15 #define max(x,y) (x>y?x:y) 16 #define min(x,y) (x<y?x:y) 17 #define MAX 100000000000000000 18 #define MOD 1000000007 19 #define pi acos(-1.0) 20 #define ei exp(1) 21 #define PI 3.141592653589793238462 22 #define INF 0x3f3f3f3f3f 23 #define mem(a) (memset(a,0,sizeof(a))) 24 typedef long
long ll; 25 ll gcd(ll a,ll b){ 26 return b?gcd(b,a%b):a; 27 } 28 bool cmp(int x,int y) 29 { 30 return x>y; 31 } 32 const int N=10005; 33 const int mod=1e9+7; 34 int a[31]; 35 int la(int x) 36 { 37 int flag=1; 38 for(int i=2;i*i<=x;i++){ 39 if(x%i==0){ 40 flag=0; 41 break; 42 } 43 } 44 return flag; 45 } 46 int main() 47 { 48 std::ios::sync_with_stdio(false); 49 int n,m,t=0,s; 50 cin>>n; 51 for(int i=0;i<n;i++){ 52 cin>>m; 53 for(int j=m;j>=2;j--){ 54 if(m%j==0&&la(j)&&j>t){ 55 t=j; 56 s=m; 57 break; 58 } 59 } 60 } 61 cout<<s<<endl; 62 return 0; 63 }

計蒜客---最大質因數