C言語---「親密数」問題

961 ワード

質問:3000以内の親密数を探していますか?
親密数は「A数の因子和」=「数B」であり、「B数の因子和」=「数A」であり、AとBは親密数である.
アルゴリズムの考え方:
(1)3,000の範囲にわたる各数
(2)【Aの因子和】を求め、【数B】に保存する
(3)求めた【Bの因子和】を、【数N】に保存する
(4)「数N」(Bの因子和)が「数A」に等しいかを比較する
コードは次のとおりです.
#include 
void main()
{
int numA,numB,numN,i;
printf("  3000      :
"); // 3000 for(numA = 1; numA<3000; numA++) { // numA , for(numB = 0, i = 1; i<=numA/2; i++) { if(!(numA%i)) numB+= i; } // numB , for(numN = 0, i = 1; i<=numB/2; i++) { if(!(numB%i)) numN+= i; } if(numN==numA&&numA

numB=0 numN=0 , numB numN 0, 。


, 。


: , 。