PRASHNIKAप्रश्निका
Back to the paper

A class Perni has been defined to accept a positive integer in binary number system from the user…

Computer Science202510 marksProgram
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 variable: 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.

Answer

Answer

AI
import java.util.Scanner;

class Perni
{
    String num;

    Perni()
    {
        num = "0";
    }

    void accept()
    {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter a binary number: ");
        num = sc.next();
    }

    int countOne(int k)
    {
        if (k == 0)
            return 0;
        return (k % 10) + countOne(k / 10);
    }

    void check()
    {
        int k = Integer.parseInt(num);
        int count = countOne(k);
        boolean prime = (count > 1);
        for (int i = 2; i * i <= count && prime; i++)
        {
            if (count % i == 0)
                prime = false;
        }
        if (prime)
            System.out.println(num + " is a Pernicious number.");
        else
            System.out.println(num + " is NOT a Pernicious number.");
    }

    public static void main(String[] args)
    {
        Perni obj = new Perni();
        obj.accept();
        obj.check();
    }
}
Explanation: accept() reads the binary number as a String (to allow digits like 1010 to be parsed digit-wise) and converts it with Integer.parseInt so countOne() can extract digits by %10/10. countOne(k) recursively adds up the digits of k (which, since k only has 0s and 1s, gives the count of 1's). check() then tests whether that count is prime and prints the appropriate message. Tested: 101 -> Pernicious (2 ones), 10110 -> Pernicious (3 ones), 1111 -> NOT Pernicious (4 ones).
Objects

From ISC 2025 Computer Science Paper 1, question 6.