PROBLEM LINK:
Practice
Author: ADMIN
Editorialist: SUSHANT AGARWAL
DIFFICULTY:
SIMPLE
PREREQUISITES:
Basic looping,Conditional statements
PROBLEM:
You will be given an integer N, 1 ≤ N ≤ 1000000. You must find
the smallest integer M ≥ N such that M is a prime number and M is a
palindrome.
EXPLANATION:
Check every odd number after N (using a loop) for 2 properties
1)It should be prime 2) The number should be equal to its reverse.
Print the first number that satisfies these 2 properties and then break out of the loop when this number is encountered.
EDITORIALIST’S SOLUTION:
Editorialist’s solution can be found here .
1 Like
Nice job, but please format your code if you want someone to be able to understand it easily - use for example this - http://prettyprinter.de/index.php
…after N…
is not correct, M >= N right?
1 Like
grb47
February 14, 2015, 1:05pm
3
#include<stdio.h>
#include<math.h>
int check(int num)
{
int rev_num = 0;
while(num > 0)
{
rev_num = rev_num*10 + num%10;
num = num/10;
}
return rev_num;
}
int main()
{
int n,i;
scanf("%d",&n);
if(n==1)
{
printf(“2\n”);
}
else if(n==2)
printf(“3\n”);
else{
if(n%2==0)
n++;
else
n=n+2;
do{
int x=sqrt(n);
for(i=3;i<=x;i++)
{
if(n%i==0)
break;
}
if(n%i!=0)
{ int j=check(n);
if(j==n)
{ printf("%d\n",n);
break;
}
}
n=n+2;
}while(1);
}
return 0;
}
why this not work
arun_as
February 14, 2015, 1:33pm
4
Please ask questions in Discuss -> Forums -> Ask a Question.
Do not post questions like this as an answer.
lincoln
February 21, 2015, 7:13am
5
The solution given in this editorial is wrong. For the input of 10010 it gives output 10201 but rather it should be 10301
answer is right…10201 is smaller than 10301
10201 is divisible by 101
hence it is not a prime no
Hence the awnser for 10010 is 10301
10201 is divisible by 101
hence it is not a prime no
Hence the answer for 10010 is 10301
sir i have applied seive of atkins to found prime but still getting tle
have u submitted it or checking it in codechef IDE ?
Serious issue - Editorialist’s solution is wrong as output for 10000 is 10201 which is 101^2.
This also means that the testcases are weak.