zoukankan      html  css  js  c++  java
  • 亲和数

    写在前面:

      摘录自网络,标明出处

      人和人之间讲友情,有趣的是,数与数之间也有相类似的关系,数学家把一对存在特殊关系的数称为“亲和数”

      常言道,知音难觅,寻找亲和数更使数学家绞尽了脑汁

      亲和数是数论王国中的一朵小花,它有漫长的发现历史和美丽动人的传说

      毕达哥拉斯曾说:“朋友是你灵魂的倩影,要像220与284一样亲密”

    ——bia度百科

    by RussianKolz

    定义

      亲和数,又称相亲数、友爱数、友好数,指两个正整数中,彼此的全部约数之和(本身除外)与另一方相等

      亲和数是一种古老的数

      在遥远的古代,人们发现某些自然数之间有特殊的关系:如果两个数a和b,a的所有除本身以外的因数之和等于b,b的所有除本身以外的因数之和等于a,则称a,b是一对亲和数

      首先发现220与284就是一对亲和数,在以后的1500年间,世界上有很多数学家致力于探寻亲和数,面对茫茫数海,无疑是大海捞针,虽经一代又一代人的穷思苦想,有些人甚至为此耗尽毕生心血,却始终没有收获

      公元九世纪,伊拉克哲学、医学、天文学和物理学家泰比特·依本库拉曾提出过一个求亲和数的法则,因为他的公式比较繁杂,难以实际操作,再加上难以辨别真假,故它并没有给人们带来惊喜,或者走出困境,数学家们仍然没有找到第二对亲和数

      十六世纪,已经有人认为自然数里就仅有这一对亲和数。有一些无聊之士,甚至给亲和数抹上迷信色彩或者增添神秘感,编出了许许多多神话故事。还宣传这对亲和数在魔术、法术、占星术和占卦上都有重要作用等等,直到费马发现了另一对亲和数:17296和18416

    • 在目前所有已知的情况下,相亲数皆同为偶数或同为奇数。目前不知道一奇一偶的相亲数是否存在,但若存在,则偶数必须为完全平方数或其两倍,且奇数也必须是完全平方数

    • 目前已知存在7对具有不同的最小素因数的相亲数

    • 在目前所有已知的情况下,相亲数皆具有质公约数。目前不知道是否存在互素的相亲数。若存在,两者乘积必大于1067

    • 1955年,艾狄胥·帕尔说明相亲数相对于正整数的密度为0

    ——bia度百科

    实现

    根据定义写的六亲不认暴力筛法

    C++:

     1 #include<bits/stdc++.h>
     2  
     3 using namespace std;
     4 
     5 int const maxNum(10000);
     6 int num_1,num_2;
     7 
     8 int divSum(int x)
     9 {
    10     int sum=0;
    11     for(int i=1;i<x;++i)
    12         if(x%i==0) sum+=i;
    13     return sum;
    14 }
    15  
    16 int main(int argc,char *argv[],char *enc[])
    17 {
    18     for(int num_1=1;num_1<=maxNum;++num_1)
    19     {
    20         num_2=divSum(num_1);
    21         if(num_1!=num_2 && num_1==divSum(num_2))
    22             printf("%d %d
    ",num_1,num_2);
    23     }
    24     
    25     return 0;
    26 }

    Java:

     1 import java.util.Scanner;
     2 
     3 class Pony
     4 {
     5     static int maxNum=10000;
     6     static int num_1,num_2;
     7 
     8     static int divSum(int x)
     9     {
    10         int sum=0;
    11         for(int i=1;i<x;++i)
    12             if(x%i==0) sum+=i;
    13         return sum;
    14     }
    15 
    16     public static void main(String[] args) throws Exception
    17     {
    18         for(int num_1=1;num_1<=maxNum;++num_1)
    19         {
    20             num_2=divSum(num_1);
    21             if(num_1!=num_2 && num_1==divSum(num_2))
    22                 System.out.println(String.format(num_1+" "+num_2));
    23         }
    24     }
    25 }
  • 相关阅读:
    js:鼠标事件
    js:argument
    js:|| 和 && 运算符 特殊用法
    css:选择器
    css:清除浮动 overflow
    jquery:after append appendTo三个函数的区别
    WIndow Document
    css:颜色名和十六进制数值
    安装centos出错
    Leetcode | Unique Paths I & II
  • 原文地址:https://www.cnblogs.com/Antigonae/p/10228852.html
Copyright © 2011-2022 走看看