Skip to content

Instantly share code, notes, and snippets.

@waitonza
Created February 4, 2013 02:47
Show Gist options
  • Save waitonza/4704747 to your computer and use it in GitHub Desktop.
Save waitonza/4704747 to your computer and use it in GitHub Desktop.
maxprime of codejom 2013
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <algorithm>
#include <iostream>
#include <map>
#include <vector>
using namespace std;
long prime[5000000];
bool isPrime(long num) {
if (num == 2) return true;
for (int i = 2; i < sqrt(num) + 1; i++) {
if (num%i == 0) {
return false;
}
}
return true;
}
void gen_prime() {
long pnt = 0;
for (long i = 2; i <= 1000500; i++) {
if (isPrime(i)) {
prime[pnt] = i;
pnt++;
}
}
}
void solve_by_line(){
long num;
scanf("%ld%*[\n]",&num);
for (long i = 0; i <= 5000000; i++) {
if (prime[i] == num) {
printf("%ld\n", prime[i]);
break;
}
else if (prime[i] > num) {
printf("%ld\n", prime[i-1]);
break;
}
}
}
int main(){
//File Name
char filename[100] = "maxprime-4";
char file_in[100] = "";
char file_out[100] = "";
strcpy(file_in, filename);
strcpy(file_out, filename);
strcat(file_in, ".in");
strcat(file_out, ".out");
//File input
freopen(file_in,"r",stdin);
//File output
freopen(file_out,"w",stdout);
gen_prime();
int n;
scanf("%d%*[\n]",&n);
for(int i=1;i<=n;i++){
solve_by_line();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment