Skip to main content

ISC 2025 Theory Question Pernicious number


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 1s in it.

Examples:

101 is a pernicious number as the number of 1s in 101 = 2 and 2 is prime number.
10110 is a pernicious number as the number of 1s in 10110 = 3 and 3 is prime number.
1111 is NOT a pernicious number as the number of 1s 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 members/instance variables:
num: to store a binary number
Methods/Member functions:
Perni(): constructor to initialize the data member with 0
void accept(): to accept a binary number (containing 0s and 1s only)
int countOne(int k): to count and return the number of 1s 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 function accordingly to enable the task.

Solution:
import java.util.Scanner;
class Perni
{
    int num;
    Perni()
    {
        num=0;
    }
    void accept(){
        Scanner sc=new Scanner(System.in);
        System.out.println("Enter a binary number:");
        num = sc.nextInt();
    }
    int countOne(int k)
    {
        if(k==0)
            return 0;
        if(k%10==1)
            return 1+countOne(k/10);
        return countOne(k/10);
    }
    void check(){
        int n = countOne(num);
        int c=0; //counter for prime check
        for(int i=1;i<=n;i++){
            if(n%i==0)
                c=c+1;
        }
        if(c==2)
            System.out.println(num+" is a pernicious number");
        else
            System.out.println(num+" is not a pernicious number");
    }
    public static void main(){
        Perni ob = new Perni();
        ob.accept();
        ob.check();
    }
}

Popular posts from this blog

Panagram ISC 2025 Specimen Practical Paper

import java.util.*; class panagram //ISC 2025 Practical Question {     //str for storing the sentence     String str;     panagram()     {         str="";     }     void accept()     {         Scanner sc=new Scanner(System.in);         System.out.println("Enter a sentence:");         str=sc.nextLine();     }     void panagramcheck()     {         int letters[]=new int[26];          StringTokenizer st=new StringTokenizer(str);         while(st.hasMoreTokens())         {             String w = st.nextToken().toUpperCase();             for(int i=65;i<=90;i++)             {                 for(int j=...

Program in Java: ISC Program CellPhone Keystrokes

import java.util.Scanner; public class Keypad {     public static void main(String args[])     {         //Array to hold keystrokes for each letter         int keys[] = new int[26];         //intialise         keys['A'-'A']=1; //A         keys['B'-'A']=2; //B         keys['C'-'A']=3; //C         keys['D'-'A']=1; //D         keys['E'-'A']=2; //E         keys['F'-'A']=3; //F         keys['G'-'A']=1; //G         keys['H'-'A']=2; //H         keys['I'-'A']=3; //I         keys['J'-'A']=1; //J         keys['K'-'A']=2; //K         keys['L'-'A']=3; //L         keys['M'-'A']=1; //M         keys['N'-'A']=2; //N       ...

ISC Program: Predict day of the week from date

Algorithm : 1)Take the last two digits of the year. 2)Divide by 4, discarding any fraction. 3)Add the day of the month. 4)Add the month's key value: JFM AMJ JAS OND 144 025 036 146 5)Subtract 1 for January or February of a leap year. 6)For a Gregorian date, add 0 for 1900's, 6 for 2000's, 4 for 1700's, 2 for 1800's; for other years, add or subtract multiples of 400. 7)For a Julian date, add 1 for 1700's, and 1 for every additional century you go back. 8)Add the last two digits of the year. 9)Divide by 7 and take the remainder. Example : Let's take a date: 26/03/2027 Last two digit of the year = 27 Divide by 4 discard fraction = 27/4 = 6.75 = 6 Add day = 6 + 26 = 32 Month key = 4 + 32 = 36 Add year code = 36 + 6 = 42 Now add two digits of the first year = 42 + 27 = 69 Now get the remainder after dividing by 7 = 69%7=6 So 1 is Sunday so 6 is Friday So 27/03/2027 Program : import java.util.Scanner; public class daydate {     public static void main(String[] arg...