160 - Factors and Factorials

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

Moderator: Board moderators

Raffan_033
New poster
Posts: 2
Joined: Tue Feb 12, 2008 8:52 pm

Post by Raffan_033 » Wed Feb 13, 2008 4:15 pm

I'm continuously getting WA. Anybody PLZ HELP..



#include<stdio.h>
#include<math.h>

int main(void)
{
int frequency[25],i,N,tempN;

int prime[25]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};

scanf("%d",&N);

while((N>=1)&&(N<=100))
{
printf("\n%3d! =",N);

if(N==1)
{
printf("%3d",0);
goto label;
}

for(i=0;i<25;i++)
{
if(prime[i]>N)
break;

frequency[i]=0;

tempN=N;

while(tempN>=prime[i])
{
frequency[i]+=(tempN/prime[i]);
tempN/=prime[i];
}

printf("%3d",frequency[i]);

if(i==14)
printf("\n ");
}

label:

scanf("%d",&N);
}

return 0;
}

epilos@CodeHolic
New poster
Posts: 4
Joined: Sat Mar 01, 2008 6:04 am

160 WA

Post by epilos@CodeHolic » Sat Mar 01, 2008 6:07 am

DELETE After AC

I think all output is right....
But WA....

Why???

Help me...
Last edited by epilos@CodeHolic on Sat Mar 01, 2008 8:54 am, edited 1 time in total.

CSEDU_1323
New poster
Posts: 10
Joined: Mon Feb 25, 2008 8:22 pm
Location: Dhaka, Bangladesh.

Post by CSEDU_1323 » Sat Mar 01, 2008 8:26 am

sample input
53
0
Sample output
53! = 49 23 12 8 4 4 3 2 2 1 1 1 1 1 1
******1
Ur output
53! = 49 23 12 8 4 4 3 2 2 1 1 1 1 1 1
**1
use 6 space instead of 1 in d second line and increase array size to 102 for safety & print "\n" just after printing output.

HOPE THIS HELPS :D
--- B HAPPY & KEEP SMILING ------

epilos@CodeHolic
New poster
Posts: 4
Joined: Sat Mar 01, 2008 6:04 am

Post by epilos@CodeHolic » Sat Mar 01, 2008 8:56 am

CSEDU_1323 wrote:sample input
53
0
Sample output
53! = 49 23 12 8 4 4 3 2 2 1 1 1 1 1 1
******1
Ur output
53! = 49 23 12 8 4 4 3 2 2 1 1 1 1 1 1
**1
use 6 space instead of 1 in d second line and increase array size to 102 for safety & print "\n" just after printing output.

HOPE THIS HELPS :D
Thanks.....

but i can't understand...

increase array size ===>> accepted....

program can't use arr[100]...

Why???

Sorry my poor English...

User avatar
theharshest
New poster
Posts: 20
Joined: Thu Jan 17, 2008 10:47 pm
Location: India

WA please help

Post by theharshest » Tue Jul 29, 2008 3:54 pm

please suggest a test case for which this code gives WA or please tell any other mistake.. :(

Code: Select all

#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
 int n;
 int pr[]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};
 int f[25],j,k;
 cin>>n;
 
 while(n!=0)
 {
  if(n==1)
  cout<<"  1! =  0"<<endl;
  else
  {
  for(int i=0;i<25;i++)
  f[i]=0;
  for(int i=n;i>=1;i--)
  {
    k=i;
    j=0;
    while(k>1)
    {
     if(k%pr[j]==0)
     {
     f[j]++;
     k=k/pr[j];          
     }
     else
     j++;
    }                
  } 
  int t=0;
  
  for(int k=24;k>=0;k--)
  {
   if(f[k]>0)
   break;
   else
   f[k]=-1;        
  }
  
  cout.setf(ios::right); 
  
  cout<<setw(3)<<n<<"! =";
  while(f[t]!=-1 && t<25)
  {
  cout<<setw(3)<<f[t];
  t++;
  if(t%15==0)
  cout<<endl<<"      ";
  }
  cout<<endl;
  }
  cin>>n;          
 }
}
"if u r goin thru hell, keep goin"

helloneo
Guru
Posts: 516
Joined: Mon Jul 04, 2005 6:30 am
Location: Seoul, Korea

Re: 160 WA?? PLZ

Post by helloneo » Tue Jul 29, 2008 5:04 pm

Try this input..

Code: Select all

52
53
0

Mohiuddin
New poster
Posts: 6
Joined: Fri Apr 25, 2008 12:09 pm

Help..

Post by Mohiuddin » Mon Aug 11, 2008 8:37 pm

This is very annoying that i m getting wa over & over again...plzz tell me anyone where is my problem? :cry: #include <stdio.h>

void free(int *index)
{
int i;
for(i=0;i<25;i++)
{
index=0;
}
}

void check(int num)
{
if(num>99)
printf("%d",num);
else if(num>9)
printf(" %d",num);
else
printf(" %d",num);
}

int main()
{
int num,i,j,index[30],temp;
int primee[] = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};
while(1)
{
scanf("%d",&num);
free(index);
if(num==0)
{
break;
}
if(num==1)
{
check(num);
printf("! = 1\n");
continue;
}
for(i=2;i<=num;i++)
{
temp=i;
for(j=0;j<25 && temp;)
{
if(temp%primee[j]==0)
{
temp/=primee[j];
index[j]++;
continue;

}
j++;
}
}

check(num);
printf("! =");

for(i=0;i<25&&index;i++)
{
check(index);
if(i==14)
printf("\n ");
}
printf("\n");
}


return 0;
}

debugger
New poster
Posts: 8
Joined: Tue Jul 29, 2008 6:24 pm

Re: 160 WA?? format

Post by debugger » Mon Sep 01, 2008 11:00 pm

Hi, i cant understand the output format. Anybody will help me make the format right? Following is my code.

Code: Select all

#include<stdio.h>

int main(){

        int numeretor,count=0,i,denomeretor,p[25]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97},fact[102]={0},j=0;
        int n,k,m;
        for(;;){
        scanf("%d",&n);
        if(n==0)
        break;
        numeretor=n;
        for(i=0;i<25;i++){
            if(p[i]>n)

           {k=i; break;}

        denomeretor=p[i];
        count=0;
        numeretor=n;

        for(;;){
        numeretor=numeretor/denomeretor;
        count=count+numeretor;
        if(numeretor<=1)
        {break;}
        }
        fact[p[i]]=count;
        }
        printf("%d!  =",n);
        for(i=0;i<k;i++){
            printf("%d ",fact[p[i]]);
            if((i%15)==0)
                printf("\n       ");


        }
       printf("\n");
}
   return 0;
    }

please help

ahmed
New poster
Posts: 9
Joined: Tue Mar 17, 2009 6:36 pm

Re: Can't find error in Problem 160

Post by ahmed » Thu Apr 02, 2009 5:06 pm

plzzzzz help to find my error!!!!!

Code: Select all


AC


Thanks mf for your kind consideration :D
Last edited by ahmed on Thu Apr 02, 2009 6:33 pm, edited 1 time in total.

ahmed
New poster
Posts: 9
Joined: Tue Mar 17, 2009 6:36 pm

Re: Can't find error in Problem 160

Post by ahmed » Thu Apr 02, 2009 5:42 pm

I am srry.I didn't understand.I just posted in all the thread that I found.I promise it won't happen again and I have deleted all of my posts.

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

Re: Can't find error in Problem 160

Post by mf » Thu Apr 02, 2009 5:50 pm

Ok, good :)

I think the error is on line 15:

Code: Select all

printf("\n%3d! =",num);
This \n in it is causing your program to print an unnecessary blank line at the very beginning of the output. Your program shouldn't do that.

For the input N=47, it also prints an unnecessary a blank line in the output, fix that too.

kymarscheng
New poster
Posts: 1
Joined: Sun Jul 19, 2009 4:56 pm

Re: Can't find error in Problem 160

Post by kymarscheng » Sun Jul 19, 2009 5:00 pm

Hello~ I get presentation error and don't know how to correct it..............Can anyone give me some advice on how to fix it?
Thx very much!!!

Code: Select all

#include <stdio.h>
int main()
{
    int f,i,j,n,x;
    int prime[25]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,
                   53,59,61,67,71,73,79,83,89,97};
    int count[25];
    while(scanf("%d",&f)==1)
    {
        if (f==0) break;
        for (i=0; i<25; i++) count[i]=0;
        for (i=2; i<=f; i++)
        {
            n=i;
            for (j=0; j<25; j++)
            {
                while(n%prime[j]==0)
                {
                    n=n/prime[j];
                    count[j]++;                
                }
            }
        }
        printf("%3d! = ",f);
        i=24;
        while(count[i]==0)
        {
            x=i;
            i--;
        }
        for (j=0;j<=i;j++)
        {
            if(j==15)
            {
                printf("\n       ");
            }
            printf("%3d",count[j]);
        }
        printf("\n");
    }
    return 0;
}

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

Re: Can't find error in Problem 160

Post by mf » Wed Jul 22, 2009 2:54 pm

"Presentation Error" here at UVa judge (but not at most other places) means that your answer is basically correct, but you have too few or too many blanks/newlines somewhere.

Read the output format section again, make sure that your program's output is exactly like sample output.

nil_r
New poster
Posts: 2
Joined: Sat Jul 11, 2009 8:37 am

Re: 160 WA.................

Post by nil_r » Fri Aug 07, 2009 1:03 pm

#include<stdio.h>
int main() /***** WA *****/

{
int i,j,c,n,k,l;
int a[25]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};
int b[25];

while(scanf("%d",&n)!=EOF)
{
if(n==0)
{
break;
}

for(i=0;i<25;i++)
{
b=0;
}

l=n;
k=n;
c=0;
while(k>=2)
{
n=k;
for(i=0;i<25;i++)
{
if(n%a==0)
{
while(n>1)
{
if(n%a!=0)
{
break;
}
b++;
n=n/a;
}
}
if(n==1)
{
break;
}
}
if(i>c)
{
c=i;
}
k--;
}
printf("%3d! =",l);
for(j=0;j<=c;j++)
{
printf("%3d",b[j]);
if(j==14)
{
printf("\n ");
}
}printf("\n");
}
return 0;
}

khairul
New poster
Posts: 2
Joined: Mon Feb 22, 2010 6:30 pm

Re: 160 - Factors and Factorials

Post by khairul » Mon Feb 22, 2010 6:49 pm

Use 15 instead of 14 and give six blank space like as printf("\n ");

if(j==14)
{
printf("\n ");
}

try like this code:

if(j==15)
{
printf("\n ");
}

Finally check(give as input 1-100 at a time) and let me know...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 0

Post Reply

Return to “Volume 1 (100-199)”