JAVA编程题求解方法和思路

1 .编写一个方法(isFlower),判断一个三位正整数n是否是水仙花数。
水仙花数是指个位、十位和百位三个数的立方和等于这个三位数本身的数,
在main方法中调用该方法打印输出所有的水仙花数。
2.计一个方法(isLeapYear)判断某年(year)是否是闰年,如果是闰年返回true,
不是返回false。然后在main方法中利用该方法输出21世纪(2001年-2100年)所有闰年。
提示:能被4整除却不能被100整除 或 能被400整除的年份是闰年。
3.编写一个Java应用程序,使用for循环输出所有能整除41580的数(包括1和其本身)。
要求按照由大到小的顺序输出,并且每行显示10个。循环变量名为i,用于统计个数的变量名为count。
4.编写一个方法(isPrime),判断一个正整数n是否是素数(质数);在main方法
中调用该方法输出2~1000之间所有的素数。

        我只能写出结果或者判断 两者在一起写不出来

水仙花数
package sy1;
import java.util.Scanner;
public class TestNarcissus {
public static void main(String[] args) {
int num = 100; int a[] = new int[3];
System.out.print("3位的水仙花数有:\t");
while (num <= 999) {
int sum =0;
a[0] = num / 100 % 10;
a[1] = num / 10 % 10;
a[2] = num % 10;
for (int i = 0; i < 3; i++) {
sum = sum + (int) Math.pow(a[i], 3);
}
if (num ==sum) {
System.out.print(num + "\t"); } num++;
}
}
}
}

public class Application {
public static void main(String args[])
{
/*
* 水仙花数
/
for(int i=100;i<=999;i++)
{
if(isFlower(i))
System.out.print(i+" ");
}
System.out.println();
System.out.println("===============================");
/
*
* 闰年
/
for(int i=2001;i<=2100;i++)
{
if(isLeapYear(i))
System.out.print(i+" ");
}
System.out.println();
System.out.println("===============================");
/
*
* 整除
/
int count = 0;
for(int i=41580;i>0;i--)
{
if(isOk(i))
{
count++;
System.out.print(i+" ");
if(count==10)
{
count =0;
System.out.println();
}
}
}
System.out.println();
System.out.println("===============================");
/
*
* 素数
*/
for(int i=2;i<=1000;i++)
{
if(isPrime(i))
{
System.out.print(i+" ");
}
}
System.out.println();
System.out.println("===============================");
}
public static boolean isFlower(int num)
{
int sum = 0;
int record = num;
int carry = 0;
while(num%10!=0)
{
carry++;
int temp = num%10;
sum+=Math.pow(temp, 3);
num/=10;
}
if(sum==record&&carry==3)
{
return true;
}
return false;
}
public static boolean isLeapYear(int year)
{
if(year%4==0&&year%100!=0||year%400==0)
{
return true;
}
return false;
}
public static boolean isOk(int num)
{
if(41580%num==0)
{
return true;
}
return false;
}
public static boolean isPrime(int num)
{
int i=2;
for(;i<=Math.sqrt(num);i++)
{
if(num%i==0)
break;
}
if(i>Math.sqrt(num))
{
return true;
}
else
{
return false;
}
}
}

#include
#include
typedef k
{
 FALSE,
 TRUE
}BOOL;
BOOL IsLeapYear (int year)
{

 if((year%4==0 && year%100!=0) || year%400==0)
 {
  printf ("%d:是闰年\n",year);
  return TRUE;
 }
 else
 {
  printf ("%d:不是闰年\n",year);
  return FALSE;
 }
}
int main ()
{
 int year=0;
 scanf  ("%d",&year);
 fflush (stdin);
 IsLeapYear(year);
 return 0;
}

//水仙花数
public class Test {
public static void main(String args[]) {
/*
* 水仙花数
/
for (int i = 100; i <= 999; i++) {
if (isFlower(i))
System.out.print(i + " ");
}
System.out.println();
System.out.println("===============================");
}
public static boolean isFlower(int num) {
int sum = 0;
int record = num;
int carry = 0;
while (num % 10 != 0) {
carry++;
int temp = num % 10;
sum += Math.pow(temp, 3);
num /= 10;
}
if (sum == record && carry == 3) {
return true;
}
return false;
}
}
//闰年
public class Test1 {
public static void main(String args[]) {
/

* 闰年
/
for (int i = 2001; i <= 2100; i++) {
if (isLeapYear(i))
System.out.print(i + " ");
}
System.out.println();
System.out.println("===============================");
}
public static boolean isLeapYear(int year) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
return true;
}
return false;
}
}
//整除数
public class Test2 {
public static void main(String args[]) {
/

* 整除
/
int count = 0;
for (int i = 41580; i > 0; i--) {
if (isOk(i)) {
count++;
System.out.print(i + " ");
if (count == 10) {
count = 0;
System.out.println();
}
}
}
System.out.println();
System.out.println("===============================");
}
public static boolean isOk(int num) {
if (41580 % num == 0) {
return true;
}
return false;
}
}
//素数
public class Test3 {
public static void main(String args[]) {
/

* 素数
*/
for (int i = 2; i <= 1000; i++) {
if (isPrime(i)) {
System.out.print(i + " ");
}
}
System.out.println();
System.out.println("===============================");
}

public static boolean isPrime(int num) {
    int i = 2;
    for (; i <= Math.sqrt(num); i++) {
        if (num % i == 0)
            break;
    }
    if (i > Math.sqrt(num)) {
        return true;
    } else {
        return false;
    }
}

}