第18講 素数・完全数・友愛数・フィボナッチ数列探索
第4話 友愛数探索プログラム
解答コード例
import java.io.*;
class y{
  static int n,cn=0,s;
  static int[] x=new int[1000];
  public static void main(String args[])throws IOException{
    BufferedReader q=new BufferedReader(new InputStreamReader(System.in));
    System.out.println("探索範囲を入力してください。");
    System.out.print ("探索範囲=");
    n=Integer.parseInt(q.readLine());
    f();
  }
  public static void f(){
    int i;
    for(i=2;i<=n;i++){
      if(g(i)){ //これはif(g(i)==true){と同じ。Javaでは式自体が値をもち、正しいときはtrue、正しくないときはfalseの値をもつ。
        x[cn]=s;
        System.out.println(i+" "+s);
        cn++;
      }
    }
  }
  public static boolean g(int a){
    int i;
    for(i=0;i<cn;i++)if(x[i]==a)return(false);
    int k,w;
    int[] h=new int[100000];
    h[0]=1;
    k=1;
    for(i=2;i<=a/2;i++){
      if(a%i==0){
        h[k]=i;
        k++;
      }
    }
    s=0;
    for(i=0;i<k;i++)s+=h[i];
    k=1;
    if(s==a)return(false);
    for(i=2;i<=s/2;i++){
      if(s%i==0){
        h[k]=i;
        k++;
      }
    }
    w=0;
    for(i=0;i<k;i++)w+=h[i];
    if(a==w)return(true); else return(false);
  }
}

実行例
Java

次話は、フィボナッチ数列の探索です。

第3話へ 第5話へ

戻る

VB講義へ
VB講義基礎へ
vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座

初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部