Submission #2266343


Source Code Expand

#include <iostream>
#include <sstream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <ctime>
#include <cstring>
#include <string>
#include <vector>
#include <stack>
#include <queue>
#include <deque>
#include <map>
#include <set>
#include <bitset>
#include <numeric>
#include <utility>
#include <iomanip>
#include <algorithm>
#include <functional>
#include <unordered_map>
using namespace std;

#define REP(i, s) for (int i = 0; i < s; ++i)
#define ALL(v) (v.begin(), v.end())
#define COUT(x) cout << #x << " = " << (x) << " (L" << __LINE__ << ")" << endl
#define EACH(i, s) for (__typeof__((s).begin()) i = (s).begin(); i != (s).end(); ++i)

template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; }
template<class T1, class T2> ostream& operator << (ostream &s, pair<T1,T2> P)
{ return s << '<' << P.first << ", " << P.second << '>'; }
template<class T> ostream& operator << (ostream &s, vector<T> P)
{ for (int i = 0; i < P.size(); ++i) { if (i > 0) { s << " "; } s << P[i]; } return s; }
template<class T> ostream& operator << (ostream &s, vector<vector<T> > P)
{ for (int i = 0; i < P.size(); ++i) { s << endl << P[i]; } return s << endl; }
template<class T> ostream& operator << (ostream &s, set<T> P)
{ EACH(it, P) { s << "<" << *it << "> "; } return s << endl; }
template<class T1, class T2> ostream& operator << (ostream &s, map<T1,T2> P)
{ EACH(it, P) { s << "<" << it->first << "->" << it->second << "> "; } return s << endl; }

int n;

vector<pair<long long,long long> > prime_factor(long long n) {
    vector<pair<long long,long long> > res;
    for (long long i = 2; i*i <= n; ++i) {
        if (n % i == 0) {
            int exp = 0;
            while (n % i == 0) {
                ++exp;
                n /= i;
            }
            res.push_back(make_pair(i, exp));
        }
    }
    if (n != 1) res.push_back(make_pair(n, 1));
    return res;
}

int main() {
  while (cin >> n) {
	if (n == 0) break;
	vector<pair<long long, long long> > vec = prime_factor(n);
	sort(vec.begin(), vec.end());
	cout << vec.back().first << endl;
  }
}








Submission Info

Submission Time
Task B - Working for the World
User drken
Language C++14 (GCC 5.4.1)
Score 100
Code Size 2285 Byte
Status AC
Exec Time 2 ms
Memory 256 KB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 27
Set Name Test Cases
All 00-sample, 10-minimum, 11-maximum, 12-little, 13-large, 14-middle, 15-zero, 50-random00, 50-random01, 50-random02, 50-random03, 50-random04, 50-random05, 50-random06, 50-random07, 50-random08, 50-random09, 50-random10, 50-random11, 50-random12, 50-random13, 50-random14, 50-random15, 50-random16, 50-random17, 50-random18, 50-random19
Case Name Status Exec Time Memory
00-sample AC 1 ms 256 KB
10-minimum AC 1 ms 256 KB
11-maximum AC 1 ms 256 KB
12-little AC 1 ms 256 KB
13-large AC 2 ms 256 KB
14-middle AC 2 ms 256 KB
15-zero AC 1 ms 256 KB
50-random00 AC 2 ms 256 KB
50-random01 AC 1 ms 256 KB
50-random02 AC 2 ms 256 KB
50-random03 AC 1 ms 256 KB
50-random04 AC 1 ms 256 KB
50-random05 AC 2 ms 256 KB
50-random06 AC 2 ms 256 KB
50-random07 AC 1 ms 256 KB
50-random08 AC 1 ms 256 KB
50-random09 AC 2 ms 256 KB
50-random10 AC 1 ms 256 KB
50-random11 AC 2 ms 256 KB
50-random12 AC 1 ms 256 KB
50-random13 AC 2 ms 256 KB
50-random14 AC 1 ms 256 KB
50-random15 AC 1 ms 256 KB
50-random16 AC 2 ms 256 KB
50-random17 AC 1 ms 256 KB
50-random18 AC 2 ms 256 KB
50-random19 AC 1 ms 256 KB