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.

## 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

- Input
**num** - Declare three variable
**sum and product, lastdigit**, initialize set value of sum = 0, product = 1. - Find the last digit of given number Eg:
**(n%10)**can be done using module operator. - Add the last digit to sum variable Eg:
**sum = sum + lastdigit**. - Do multiplication using lastdigit Eg:
**product = product *****lastdigit**. - Now remove last digit from num, to do so Divide
**num by 10**. - Goto
**step 3**, loop run until**num**become 0. - 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'); num = int.parse(stdin.readLineSync()!); 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'); startrange = int.parse(stdin.readLineSync()!); print('Enter High Range to check spy number'); highrange = int.parse(stdin.readLineSync()!); print(""); print("Spy Numbers Between $startrange to $highrange are "); for(int i=startrange; i<=highrange;i++){ if(checkSpy(i)){ print("$i"); } } }

**output**