10235 - Simply Emirp

All about problems in Volume 102. If there is a thread about your problem, please use it. If not, create one with its number in the subject.

Moderator: Board moderators

Jan
Guru
Posts: 1334
Joined: Wed Jun 22, 2005 10:58 pm
Location: Dhaka, Bangladesh
Contact:

Post by Jan » Fri Jul 13, 2007 12:50 pm

2, 3, 5, 7, 11 ... these are primes, not emirps. Read the description again to find the reason.
Ami ekhono shopno dekhi...
HomePage

apurba
New poster
Posts: 42
Joined: Sun Oct 07, 2007 10:29 pm

Re: 10235 WA

Post by apurba » Tue Apr 15, 2008 10:25 am

i am not finding the reason of getting wa??????/
some one please help..............
here is my code................

Code: Select all

/*****  simply emirp @ 10235  *****/



#include<stdio.h>

#include<math.h>



long isPrime(long p) 

{ 

	long s;

	s=long(sqrt(p));

	//if(p==1) return 1; 

    //if(p==2) return 1; 

    if(p%2==0) return 0; 

    for(long i=3;i<=s+1;i+=2) 

        if(p%i==0) 

			return 0; 

	return 1;

}



long RevisPrime(long q)

{

	long r;

	long val=0;

	for(;q;q/=10)

		val = val*10 + q%10;

	r=long(sqrt(val));

	//if(val==1)	return 1;

	//if(val==2)	return 1;

	if(val%2==0)	return 0;

	for(long k=3;k<=r+1;k+=2)

		if(val%k==0)

			return 0;

	return 1;

}



int main()

{

	long num;

	long t1,t2;

	while(scanf("%ld",&num)==1)

	{

		t1=isPrime(num);

		t2=RevisPrime(num);

		if(num==2||num==3||num==5||num==7||num==11)

			printf("%ld is prime.\n",num);

		

		else if(t1==0)

			printf("%ld is not prime.\n",num);



		else if(t1==1 && t2==1)

			printf("%ld is emirp.\n",num);



		else if(t1==1 && t2==0)

			printf("%ld is prime.\n",num);

	}

	return 0;

}

thanks in advance

Code: Select all

keep dreaming...

amr saqr
New poster
Posts: 29
Joined: Tue Mar 11, 2008 6:35 pm

Re: 10235 WA

Post by amr saqr » Thu May 01, 2008 5:38 am

I don't know why am i getting WA too,
I think i read the problem description very carefully :( :( :(

Code: Select all

Removed After AC
Last edited by amr saqr on Thu May 01, 2008 5:01 pm, edited 1 time in total.
C++ Is The Best.

mf
Guru
Posts: 1244
Joined: Mon Feb 28, 2005 4:51 am
Location: Zürich, Switzerland
Contact:

Re: 10235 WA

Post by mf » Thu May 01, 2008 9:44 am

You forgot to write a terminating \0 to string in this part of your code:
amr saqr wrote:

Code: Select all

			int index=0,temp=number;
			while (temp!=0)
			{
				n[index]=temp%10+'0';
				temp/=10;
				index++;
			}
			int t=atoi(n);

amr saqr
New poster
Posts: 29
Joined: Tue Mar 11, 2008 6:35 pm

Re: 10235 WA

Post by amr saqr » Thu May 01, 2008 4:59 pm

Thanx so much (mf)
i modified my code and got AC :D :D :D
C++ Is The Best.

pok
New poster
Posts: 25
Joined: Sun Nov 09, 2008 11:04 pm

Re: 10235 - Simply Emirp

Post by pok » Sun Dec 14, 2008 1:11 am

why i got WA ?
i cant understand..
pls someone help me..
pls pls..

Code: Select all

AC..
removed after AC..
:cry:

asif_khan_ak_07
New poster
Posts: 25
Joined: Fri Apr 17, 2009 8:24 am

Re: 10235 - Simply Emirp

Post by asif_khan_ak_07 » Thu Aug 06, 2009 5:28 am

Can anyone point out the mistake in my program...

Code: Select all

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define max 1000000

bool pr[max+1];
int prime[max];

int main()
{
	
	long int ns,re;
	int len,r,fg;
	char in[10],rev[10];

	//generating primes

	pr[0]=true;
	pr[1]=true;

	for(int i=2;i*i<=max;i++)
	{
			if(pr[i]==true)
				continue;
		for(int j=i+i;j<=max;j=j+i)
			pr[j]=true;
		//generating ends;
	}
	//program starts

	while(gets(in))
	{
		ns=atol(in);
		if(pr[ns]==true)
		{
			printf("%ld is not prime.\n",ns);
			continue;
		}
		else
		{
			len=strlen(in);
			r=0;
			fg=1;

			for(int k=len-1;k>=0;k--)
			{
				if(in[k]!='0')
					rev[r++]=in[k];
			}
				
			rev[r]='\0';

			re=atol(rev);
			//printf("%ld",re);

			if(pr[re]==false && re!=ns)
				fg++;
		}

		if(fg==1)
			printf("%ld is prime.\n",ns);
		else if(fg==2)
			printf("%ld is emirp.\n",ns);
	
	}


return 0;
}
Thanks in advnce :D

sudipta
New poster
Posts: 11
Joined: Wed Sep 30, 2009 7:23 pm
Location: Sylhet

10235 - SIMPLY EMIRP (help)

Post by sudipta » Wed Sep 30, 2009 7:34 pm

I gave this solution for prob-10235. But it made WRONG ANSWER. Where is the fault?
#include<stdio.h>
long int prime(long int n){
int i,a=0;
for(i=2;i<=n/2;i++){
if(n%i==0) {
a++;
break;
}
}
if(a>0) return 0;
else return 1;
}
long int reverse(long int n)
{
long int x,rev=0;
while(n>0)
{
x=n%10;
rev=(rev*10)+x;
n=n/10;
}
return rev;
}
int main()
{
long int n,rev,p,rnp;
while(scanf("%ld",&n)==1){
if(n<=1) printf("%ld is prime.\n",n);
else
{p=prime(n);
if(p==0) printf("%ld is not prime.\n",n);
else if(p==1)
{
rev=reverse(n);
rnp=prime(rev);
if(rnp==1 && n>10)printf("%ld is emirp.\n",n);
else printf("%ld is prime.\n",n);
}
}
}
return 0;
}
Don't Copy, Think Also

tanvirfromhell
New poster
Posts: 5
Joined: Sat Apr 16, 2011 7:42 pm

Re: 10235 - Simply Emirp

Post by tanvirfromhell » Fri Oct 14, 2011 11:34 pm

What's wrong with my code?!! I checked every sample output from this post & my code generate correct ans. but got WA in uva. plz help me.

Code: Select all

#include<stdio.h>
#include<math.h>
int main()
{
   long int n,n1,rs;
   int i,j,r;
   bool chk,chk2;
    while(scanf("%ld",&n)!=EOF)
    {
        chk=true;
        if(n==0 || n==1)
            chk=false;
        for(i=2;i<sqrt(n);i++)
            if(n%i==0)
                chk=false;

        if(chk==false)
            printf("%ld is not prime.\n",n);
        else
        {
            chk2=true;
            rs=0;
            n1=n;
            while(n!=0)
            {
                r=n%10;
                rs=rs*10+r;
                n=n/10;
            }
            for(j=2;j<sqrt(rs);j++)
                if(rs%j==0)
                    chk2=false;
            if(rs==n1)
                printf("%ld is prime.\n",n1);
            else if(chk2==true)
                printf("%ld is emirp.\n",n1);
            else if(chk==true)
                printf("%ld is prime.\n",n1);
        }
    }
    return 0;
}
plz............... :(

sadia_atique
New poster
Posts: 25
Joined: Thu Nov 24, 2011 6:32 am

WA in 10235

Post by sadia_atique » Thu Nov 24, 2011 6:45 am

Someone please help me,I'm getting WA in 10235,I used sieve to produce primes and found correct answers for various test cases,can't think anymore,please help!!: :cry:
Here's my code,

Code: Select all

#include<stdio.h>
static char sieve[1000001];
unsigned long reverse(unsigned long x)
{
         unsigned long r=0;
         do
         {
                  r=r*10+(x%10);
                  x/=10;
         }while(x);
         return r;
}
         
int main()
{
    unsigned long int i,j,n;
    sieve[0]=sieve[1]=0;
    for(i=2; i<100001; i++) sieve[i]=1;
    for(i=2; i<1001; i++)
    {
             if(sieve[i]!=0)
             {
                              for(j=i+1; j<1000001; j++)
                              {
                                         if (sieve[j]!=0)
                                         {
                                                           if((j%i)==0) sieve[j]=0;
                                         }
                              }
             }
    }
    while(scanf("%lu",&n)!=EOF)
    {
                               if(sieve[n]==0) printf("%lu is not prime.\n",n);
                               else if(sieve[n]==1)
                               {
                                    if((sieve[reverse(n)]==1) && (n!=reverse(n))) printf("%lu is emirp.\n",n);
                                    else printf("%lu is prime.\n",n);
                               }
    }
    return 0;
}  

User avatar
sohel
Guru
Posts: 856
Joined: Thu Jan 30, 2003 5:50 am
Location: New York

Re: WA in 10235

Post by sohel » Thu Nov 24, 2011 10:31 am

Hello Sadia,

Welcome to UVa Forum. Here, we follow certain rules before making a post.
- It's a good idea to include the problem name in the title as well - something like "10235 - Simply Emirp". This will help everyone to identify the problem quickly.
- If there is already a thread related to your problem then make a post in that thread as opposed to creating a new one!
- Use the search option located at the top right corner to find existing discussions.

About your problem:

for(i=2; i<100001; i++) sieve=1;

I think you missed a 0?

sadia_atique
New poster
Posts: 25
Joined: Thu Nov 24, 2011 6:32 am

Re: WA in 10235

Post by sadia_atique » Thu Nov 24, 2011 9:07 pm

Thanks for your kind help,it was really so stupid and frustrating,and got AC at last :D
And thanks for the advice,I'll remember next time :)

uvasarker
Learning poster
Posts: 96
Joined: Tue Jul 19, 2011 12:19 pm
Location: Dhaka, Bangladesh
Contact:

10235 Simple Emirp why (RE)? Please, help me please

Post by uvasarker » Fri Jan 20, 2012 6:43 am

Anyone will help me with kindly please why I am getting RE in my program?
Here, is my code:

Code: Select all

/* Removed */
Last edited by uvasarker on Wed Jan 25, 2012 9:03 am, edited 1 time in total.

brianfry713
Guru
Posts: 5947
Joined: Thu Sep 01, 2011 9:09 am
Location: San Jose, CA, USA

Re: WA in 10235

Post by brianfry713 » Wed Jan 25, 2012 1:59 am

Make your sieve array global.
Check input and AC output for thousands of problems on uDebug!

uvasarker
Learning poster
Posts: 96
Joined: Tue Jul 19, 2011 12:19 pm
Location: Dhaka, Bangladesh
Contact:

Re: WA in 10235

Post by uvasarker » Wed Jan 25, 2012 9:02 am

Hi, brother
Thanks a lots..
Thanks a lots..
Thanks a lots..
Thanks a lots..
................
..............

Post Reply

Return to “Volume 102 (10200-10299)”