# FASTJON Editorials

Contest

Setter: sayan_kashyapi

Tester: mishra_roshan

Editorialist: shaw_sandeep

Simple

# PREREQUISITES:

FizzBuzz Program / Basic Conditional Logic

# PROBLEM:

Given three integers A, B, and N. Travel from 1 to N, If the number is a multiple of A, print “Beautiful”. If the number is a multiple of B, print “Lie”. If the number is a multiple of both A and B, print “BeautifulLie” else print the current number itself.

# EXPLANATION

The implementation is same as standard FizzBuzz program with some basic modification.

1. Check for multiple of A and B i.e, “BeautifulLie”

2. Either check for the multiple of A (Beautiful) or multiple of B (Lie)

3. Else print the number itself

# TIME COMPLEXITY

Time complexity is O(N).

# SOLUTIONS:

Setter's Solution
C++
``````
#include <iostream>

using namespace std;

int main(){

int n1, n2,n;

cin >> n1 >> n2 >> n;

for ( int i = 1 ; i <= n ; i++){

if(i%n1==0 && i%n2==0){

cout << "BeautifulLie" << endl;

}

else if(i%n1==0){

cout << "Beautiful" << endl;

}

else if(i%n2==0){

cout << "Lie" << endl;

}

else{

cout << i << endl;

}

}

return 0;

}

``````
Tester's Solution
C++
``````
#include <iostream>

using namespace std;

int main()

{

int n1, n2,n;

cin >> n1 >> n2>>n;

int i, f = n1 - 1, b = n2 - 1;

for ( i = 1 ; i <= n ; ++i, --f, --b )

{

if ( f && b )cout << i;

if ( !f ) {cout << "Beautiful"; f = n1;}

if ( !b ) {cout << "Lie"; b = n2;}

cout << "\n";

}

return 0;

}

``````

Feel free to Share your approach.

Suggestions are welcomed as always had been.