public class QinMi {
創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站制作、成都做網(wǎng)站與策劃設(shè)計,東至網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:東至等地區(qū)。東至做網(wǎng)站價格咨詢:028-86922220
private int a[] = new int[999];//存儲2-1000的每個數(shù)的因子和
private int duiShui = 0;//親密數(shù)的對數(shù)
public int[] jiSuan() {
for (int i = 2; i = 1000; i++) {//外層循環(huán)是從2-1000
int sum = 0;
for (int j = 1; j i; j++) {//判斷該數(shù)是不是可以被整除、排除本身
if (i % j == 0) {
sum += j;//計算該數(shù)的因子和
}
a[i - 2] = sum;//存儲到容器中
}
}
return a;
}
public void howMany() {//計算有多少對
for (int i = 0; i a.length - 1; i++) {//用的是選擇排序的思想
for (int j = i + 1; j a.length; j++) {
if (a[i] == a[j]) {//如果相等對數(shù)就增加一次
duiShui++;
}
}
}
System.out.println(duiShui);
}
public static void main(String[] args) {
QinMi a = new QinMi();
a.jiSuan();
a.howMany();
}
import?java.util.*;
public?class?Main{
public?static?void?main?(String?[]?args)?{
boolean?[]?found?=?new?boolean[1001];
int?t;
for?(int?i?=?2;?i??1000;?i++)?{
if?(!found[i])?{
t?=?find(i);
found[i]?=?true;
if?(t?=?1000)?found[t]?=?true;
if?(find(t)?==?i)
System.out.printf("%d,?%d\n",?i,?t);
}
}
}
private?static?int?find?(int?n)?{
int?result?=?0;
for?(int?i?=?2;?i??n;?i++)
if?(n?%?i?==?0)
result?+=?i;
return?result;
}
}
注意,此題中的親密數(shù)定義似乎和傳統(tǒng)的定義不一樣,此題中是除去1和自身,而傳統(tǒng)的定義是包括1。
我的輸出是
48, 75
140, 195
public?static?void?main(String[]?args)?{
for(int?i?=?20;?i?=?1000;?i++)?{
int?pair?=?intimateNumber(i);
if?(pair??i??intimateNumber(pair)?==?i)?{
System.out.println(i?+?",?"?+?pair);
}
}
}
public?static?int?intimateNumber(int?n)?{
if(n?=?0)?{
return?-1;
}
int?squareRoot?=?(int)Math.floor(Math.sqrt(n));
int?result?=?0;
for(int?i?=?2;?i?=?squareRoot;?i++)?{
if(n?%?i?==?0)?{
if(i?*?i?!=?n)?{
result?+=?i?+?n?/?i;
}?else?{
result?+=?i;
}
}
}
return?result;
}
#includestdio.h int main() { int a,i,b,n; printf("There are following friendly--numbers pair smaller than 3000:\n"); for(a=1;a3000;a++) /*窮舉1000以內(nèi)的全部整數(shù)*/ { for(b=0,i=1;i=a/2;i++) /*計算數(shù)a的各因子,各因子之和存放于b*/ if(!(a%i))b+=i; /*計算b的各因子,各因子之和存于n*/ for(n=0,i=1;i=b/2;i++) if(!(b%i))n+=i; if(n==aab) printf("%4d..%4d ",a,b); /*若n=a,則a和b是一對親密數(shù),輸出*/ } } *運(yùn)行結(jié)果 There are following friendly--numbers pair smaller than 3000: 220.. 284 1184.. 1210 2620.. 2924
按照你的要求編寫的求n以內(nèi)的親密數(shù)對的Java程序如下
import?java.util.Scanner;
public?class?CCC?{
public?static?void?main(String[]?args)?{
int?a,b,i,n,num;
System.out.println("請輸入一個正整數(shù)");
Scanner?sc=new?Scanner(System.in);
n=sc.nextInt();
for(a=1;an;a++)
{
for(b=0,i=1;i=a/2;i++)
if(a%i==0)?b+=i;?
for(num=0,i=1;i=b/2;i++)
if(b%i==0)?num+=i;
if(num==a??ab)
System.out.println(a+","+b);
}
}
}
運(yùn)行結(jié)果
請輸入一個正整數(shù)
3000
220,284
1184,1210
2620,2924
網(wǎng)頁標(biāo)題:java代碼怎么求親密數(shù) c語言求親密數(shù)
文章分享:http://www.muchs.cn/article2/doochoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、響應(yīng)式網(wǎng)站、域名注冊、靜態(tài)網(wǎng)站、網(wǎng)站收錄、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)