Half-Yearly [Practical] Solution
$ Question 1 :
import java.util.Scanner;
class Question1
{
Scanner S = new Scanner(System.in);
public String noToDate(int x)
{
String ns="",temp="",str= "";
int day = x/10000;
int month = (x%10000)/100;
int year = x%100;
str = " "+Integer.toString(year);
if(month<=12)
{
if(month==1)
str = " January,"+str;
if(month==2)
str = " February,"+str;
if(month==3)
str = " March,"+str;
if(month==4)
str = " April,"+str;
if(month==5)
str = " May,"+str;
if(month==6)
str = " June,"+str;
if(month==7)
str = " July,"+str;
if(month==8)
str = "
August,"+str;
if(month==9)
str = " September,"+str;
if(month==10)
str = " October,"+str;
if(month==11)
str = " November,"+str;
if(month==12)
str = " December,"+str;
}
else
return "INVALID DATE";
if((day==31)&&((month==2)||(month==4)||(month==6)||(month==9)||(month==11)))
return "INVALID DATE";
if((day>28)&&(month==2))
{
if(day>29)
return "INVALID DATE";
if((day==29)&&(isLeapYear(year)==false))
return "INVALID DATE";
}
if((day<10)&&(day>20))
{
if(day%10==1)
str = Integer.toString(day)+"st"+str;
if(day%10==2)
str = Integer.toString(day)+"nd"+str;
if(day%10==3)
str = Integer.toString(day)+"rd"+str;
}
else
str = Integer.toString(day)+"th"+str;
int o =day%10;
if((o==4)||(o==5)||(o==6)||(o==7)||(o==8)||(o==9)||(o==10))
str = Integer.toString(day)+"th"+str;
str = str+"\nVALID DATE";
return str;
}
public boolean isLeapYear(int x)
{
if((x%100)%4==0)
return true;
else
return false;
}
public void main()
{
System.out.print("Enter the date in ddmmyy format : ");
int date = S.nextInt();
System.out.println(noToDate(date));
}
}
$ Question 2 :
import java.util.Scanner;
class Question2
{
Scanner S = new Scanner(System.in);
public boolean isKeith(int n)
{
int no = n;
int sum = 0;
int d = nod(n);
int digits[] = new int[nod(no)];
int terms[] = new int[n];
for(int i = nod(n)-1;i>=0;i--)
{
terms[i] = no%10;
no=no/10;
}
while(sum<n)
{
sum = 0;
for(int k =0;k<= nod(n);k++)
sum=sum+terms[d-k];
terms[d] = sum;
d++;
}
if(sum==n)
return true;
else
return false;
}
public void main()
{
System.out.println("Enter the range in which you want to find Keith
Numbers :- ");
System.out.print("Enter m : ");
int m = S.nextInt();
System.out.print("Enter n : ");
int n = S.nextInt();
if((m<10)||(n<10)||(m>n)||(m>=5000)||(n>=5000))
System.out.println("Invalid Input");
else
System.out.print("Keith numbers between "+m+" and
"+n+" are : ");
for(int i= m;i<=n;i++)
if(isKeith(i))
System.out.print(i+",");
System.out.println("\b\n");
}
public int nod(int no)
{
int result = 0;
while(no>0)
{
result++;
no=no/10;
}
return result;
}
}
$ Question 3 :
import
java.util.Scanner;
class
Question3
{
Scanner S = new Scanner(System.in);
public boolean areAmicable(int x,int y)
{
if((sum_of_factors(x)==y)&&(sum_of_factors(y)==x))
return true;
else
return false;
}
public int sum_of_factors(int x)
{
int sum = 0;
for(int i = 1;i<x;i++)
if(x%i==0)
sum = sum + i;
return sum;
}
public void main()
{
System.out.print("Number 1 :
");
int a = S.nextInt();
System.out.print("Number 2 :
");
int b = S.nextInt();
if(areAmicable(a,b))
{
System.out.print("Amicable
Numbers\nSum of Factors of "+a+" : 1");
for(int u = 2;u<a;u++)
if(a%u==0)
System.out.print("+"+u);
System.out.println(" =
"+b);
System.out.print("Sum of Factors
of "+b+" : 1");
for(int u = 2;u<b;u++)
if(b%u==0)
System.out.print("+"+u);
System.out.println(" =
"+a);
}
else
System.out.println("Not Amicable
Numbers");
}
}
No comments:
Post a Comment