Advertisements
Advertisements
प्रश्न
A class Perni has been defined to accept a positive integer in binary number system from the user and display if it is a Pernicious number or not.
[A pernicious number is a binary number that has minimum of two digits and has prime number of 1’s in it.]
Examples:
- 101 is a pernicious number as the number of 1’s in 101 = 2 and 2 is prime number.
- 10110 is a pernicious number as the number of 1’s in 10110 = 3 and 3 is prime number.
- 1111 is a NOT a pernicious number as the number of 1’s in 1111 = 4 and 4 is NOT a prime number.
The details of the members of the class are given below:
| Class name | Perni |
| Data member/instance varibale: | |
| num: | to store a binary number |
| Methods/Member functions: | |
| Perni( ): | constructor to initialise the data member with 0 |
| void accept( ): | to accept a binary number (containing 0’s and 1’s only) |
| int countOne(int k): | to count and return the number of 1’s in ‘k’ using recursive technique |
| void check( ): | to check whether the given number is a pernicious number by invoking the function countOne( ) and to display an appropriate message |
Specify the class Perni giving the details of the constructor( ), void accept( ), int countOne(int) and void check( ). Define a main( ) function to create an object and call the functions accordingly to enable the task.
कोड लेखन
Advertisements
उत्तर
import java.util.Scanner;
class Perni {
private int num;
// Constructor to initialize num to 0
public Perni() {
num = 0;
}
// Method to accept a binary number
public void accept() {
Scanner sc = new Scanner(System.in);
System.out.print("Enter a binary number:");
num = sc.nextInt();
}
// Recursive method to count the number of 1's in a
binary number
public int countOne(int k) {
if (k == 0){
return 0;
}
return (k % 10 == 1? 1:0) + countOne(k/10);
}
// Method to check if the number is a pernicious
number
public void check() {
int count = countOne(num);
if (isPrime(count)) {
System.out.println(num + "is a pernicious
number.");
} else {
System.out.println(num + "is NOT a pernicious
number.");
}
}
// Helper method to check if a number is prime
private boolean is Prime(int n) {
if (n < 2) return false;
for (int i = 2; i * i < = n; i++)
if (n % i == 0) return false;
}
return true;
}
// Main method to test the class
public static void main(String[] args) {
Perni obj = new Perni();
obj.accept();
obj.check();
}
}shaalaa.com
या प्रश्नात किंवा उत्तरात काही त्रुटी आहे का?
2024-2025 (March) Official Board
