### 11970 - Lucky Numbers

Posted:

**Sat Apr 16, 2011 3:10 pm**Code: Select all

` AC using suggested methods :D`

The Online Judge board

https://uva.onlinejudge.org/board/

https://uva.onlinejudge.org/board/viewtopic.php?f=54&t=53893

Page **1** of **1**

Posted: **Sat Apr 16, 2011 3:10 pm**

Code: Select all

` AC using suggested methods :D`

Posted: **Sun Apr 17, 2011 5:40 am**

for the result of the given equation to be an integer, the denominator must be an integer. So, the numbers in the denominator must be a square number ( n * n ) . Now, generate all possible square numbers between 10^9 and search for possible answers.

Hope it helps

Hope it helps

Posted: **Sun Apr 17, 2011 6:07 am**

I only need to find all divisor of input number n in the range [1,(int)sqrt(n)) and for each divisor I print the answer

for example, there are 2 divisors of 16 in the range [1,4) so output 2 numbers

Moreover, I didn't use long long and long double, long is enough and your code is much more complex than mine

for example, there are 2 divisors of 16 in the range [1,4) so output 2 numbers

Moreover, I didn't use long long and long double, long is enough and your code is much more complex than mine

Posted: **Sun Apr 17, 2011 9:43 am**

Thanks folks for such quick response! Managed to get AC after some thinking using iriz7482 method

Posted: **Wed May 04, 2011 8:35 pm**

here is my code..got tle..help meeee

#include<stdio.h>

#include<math.h>

int main()

{

unsigned long int c,i,n,q,d,j,m,ruh[100],sq;

while(scanf("%lu",&c)==1)

{

for(j=1;j<=c;j++)

{

scanf("%lu",&n);

printf("\nCase %lu:",j);

sq=(long int)sqrt(n);

for(i=sq;i<n;i++)

{

q=n-i;

d=(long int)sqrt(q);

if((q==d*d)&&(i%d==0))

printf(" %lu",i);

}

}

}

return 0;

}

#include<stdio.h>

#include<math.h>

int main()

{

unsigned long int c,i,n,q,d,j,m,ruh[100],sq;

while(scanf("%lu",&c)==1)

{

for(j=1;j<=c;j++)

{

scanf("%lu",&n);

printf("\nCase %lu:",j);

sq=(long int)sqrt(n);

for(i=sq;i<n;i++)

{

q=n-i;

d=(long int)sqrt(q);

if((q==d*d)&&(i%d==0))

printf(" %lu",i);

}

}

}

return 0;

}

Posted: **Thu May 19, 2011 10:12 pm**

#include<iostream>

#include<math.h>

using namespace std;

int main()

{

int T;

cin>>T;

long long N,x,s;

for(int j=1;j<=T;j++)

{

cin>>N;

long rt=sqrt(N-1);

cout<<"case "<<j<<":";

for(long i=rt;i>=1;i--)

{

s=i*i;

x=N-s;

if(x%i==0)

cout<<" "<<x;

}

if(j!=T)

cout<<"\n";

}

return 0;

}

here is my code. the feedback is 'wrong answer'. what's the problem? pls help me.

#include<math.h>

using namespace std;

int main()

{

int T;

cin>>T;

long long N,x,s;

for(int j=1;j<=T;j++)

{

cin>>N;

long rt=sqrt(N-1);

cout<<"case "<<j<<":";

for(long i=rt;i>=1;i--)

{

s=i*i;

x=N-s;

if(x%i==0)

cout<<" "<<x;

}

if(j!=T)

cout<<"\n";

}

return 0;

}

here is my code. the feedback is 'wrong answer'. what's the problem? pls help me.

Posted: **Sun Jun 05, 2011 8:35 pm**

Hi Kalochita...

Please be careful of problem statement ....you have in simple mistake..

1. change: case->Case

2.if(j!=T) //no need

always print a new line .

I hope u will get Accepted..

ASU(SUST)

Please be careful of problem statement ....you have in simple mistake..

1. change: case->Case

2.if(j!=T) //no need

always print a new line .

I hope u will get Accepted..

ASU(SUST)

Posted: **Thu May 28, 2015 10:20 pm**

I don't understand why i'm getting wrong answer for this problem ?

Code: Select all

```
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
int main() {
int t;
scanf("%d",&t);
for(int c=1;c<=t;c++){
int n;
scanf("%d",&n);
printf("Case %d:",c);
for(int i=(int)sqrt(n);i>1;i--){
if(n%i==0){
int r=n-i*i;
if(r!=0)
printf(" %d",r);
}
}
n--;
if(n==0)
printf("\n");
else if(c<t)
printf(" %d\n",n);
else
printf(" %d",n);
}
return 0;
}
```