by rifath_csedu » Fri Aug 10, 2012 2:27 pm
I got RE... in this problem.... bt why!!!!!!!! :'( ... here is my code.. i used seive method in here..
#include<stdio.h>
#include <string.h>
#include <math.h>
long long int a[1000000],b[1000000];
long long int seive()
{
long long int i,j,k=0;
memset(a,0,sizeof(a));
a[0]=a[1]=1;
for (i=2;i<1000000;i++)
{
if (a[i]==0)
{
b[k++]=i
;
for (j=i+i;j<1000000;j+=i)
{
a[j]=1;
}
}
}
return 0;
}
int main()
{
long long int n,i,q,x,c;
seive();
while (scanf("%lld",&n)!=EOF)
{
if (n==0)
break;
if (n<0)
{
printf("%lld = -1 * ",n);
c= n*-1;
x=c;
}
else if (n>0)
{
printf("%lld = ",n);
x=n;
}
i=0;
q=0;
while (x!=1)
{
if(x%b[i]==0)
{
x=x/b[i];
if(q==0)
{
printf("%lld",b[i]);
q=1;
}
else
printf(" * %lld",b[i]);
}
else
{
i++;
}
}
i=0;
q=0;
while (x!=1)
{
if(x%b[i]==0)
{
x=x/b[i];
if(q==0)
{
printf("%lld",b[i]);
q=1;
}
else
printf(" * %lld",b[i]);
}
else
{
i++;
}
}
printf("\n");
}
return 0;
}