Optimization 如何优化寻找友好对的代码
请参阅我用来查找我认为所有友好对(n,m),nOptimization 如何优化寻找友好对的代码,optimization,number-theory,Optimization,Number Theory,请参阅我用来查找我认为所有友好对(n,m),n
\include
#include<stdio.h>
#include<stdlib.h>
int sumOfFactors(int );
int main(){
int x, y, start, end;
printf("Enter start of the range:\n");
scanf("%d", &start);
printf("Enter end of the range:\n");
scanf("%d", &end);
for(x = start;x <= end;x++){
for(y=end; y>= start;y--){
if(x == sumOfFactors(y) && y == sumOfFactors(x) && x != y){
printf("The numbers %d and %d are Amicable pair\n", x,y);
}
}
}
return 0;
}
int sumOfFactors(int x){
int sum = 1, i, j;
for(j=2;j <= x/2;j++){
if(x % j == 0)
sum += j;
}
return sum;
}
#包括
综合要素(综合要素);
int main(){
整数x,y,开始,结束;
printf(“输入范围的开始:\n”);
scanf(“%d”,开始(&S);
printf(“输入范围的结尾:\n”);
scanf(“%d”,结束)(&end);
对于(x=开始;x=开始;y--){
如果(x==总和因子(y)&&y==总和因子(x)&&x!=y){
printf(“数字%d和%d是友好的一对”\n“,x,y);
}
}
}
返回0;
}
综合要素(综合x){
int sum=1,i,j;
对于(j=2;j你这样做是为了Euler项目还是其他竞赛?@XML No.作为优化练习。到目前为止,我一直致力于优化函数。这是一个非常简短的片段@belisarius:但在查找这些对时没有使用过滤器?总之,非常有趣的网站——不仅仅是第9章!提问者提到他们使用的是Python-它是最好用那种语言来回应。:)
def findSumOfFactors(n):
sum = 1
for i in range(2, int(n / 2) + 1):
if n % i == 0:
sum += i
return sum
start = int(input())
end = int(input())
for i in range(start, end + 1):
for j in range(end, start + 1, -1):
if i is not j and findSumOfFactors(i) == j and findSumOfFactors(j) == i and j>1:
print(i, j)