 Hi Guys, Welcome to Proto Coders Point.

In this Dart Programming Tutorial, will learn what is a spy number and write a dart programs to check if the given number is spy number or not.

A spy number program is the most frequently programming logic program that is been asked in technical round of job interview.

## Primitive data type dart - Dart Nul... To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video Primitive data type dart - Dart Null Safety explained in #shorts What is a spy number

A Integer number is been split into individual digits, and the sum and product is found, if the sum & product are equal then it’s called as spy number.

### Spy Number Example

Let’s us take a number ‘123’ and then split it into individual digit number (1, 2, 3) and let’s check where the number is spy or not a spy, so to find it we need to get sum and product of it Eg:

Sum = (1 + 2 + 3) = 6.

Product = ( 1 * 2 * 3) = 6

If you observe sum and product are equal, Therefore, 123 is a spy number

## Algorithm to check spy number in dart

1. Input num
2. Declare three variable sum and product, lastdigit, initialize set value of sum = 0, product = 1.
3. Find the last digit of given number Eg: (n%10) can be done using module operator.
4. Add the last digit to sum variable Eg: sum = sum + lastdigit.
5. Do multiplication using lastdigit Eg: product = product * lastdigit.
6. Now remove last digit from num, to do so Divide num by 10.
7. Goto step 3, loop run until num become 0.
8. now if final sum and product are same/equal, then the given number(num) is a spy number else not a spy number.

## Dart program to check if given number is spy number

```import 'dart:io';
void main() {
late int num;
int  product = 1, sum = 0, lastdigit;
print('Enter a number to check for spy number');

while(num>0){
lastdigit = num % 10;
sum = sum +lastdigit;

product = product * lastdigit;

num = num~/10;
}

if(sum == product){
print("The Entered Number is Spy number");
}else{
print("The Entered Number is Not a Spy number");
}
}```

output

## Print all spy number from 1 to n given range in dart program

```import 'dart:io';

bool checkSpy(int number){
int  product = 1, sum = 0, lastdigit;
while(number>0){
lastdigit = number % 10;
sum = sum +lastdigit;

product = product * lastdigit;

number = number~/10;
}

if(sum == product)
return true;

return false;
}
void main() {
int startrange= 0, highrange = 0;

print('Enter Start Range to check spy number');

print('Enter High Range to check spy number');

print("");

print("Spy Numbers Between \$startrange  to \$highrange are ");

for(int i=startrange; i<=highrange;i++){
if(checkSpy(i)){
print("\$i");
}
}

}```

output