ZZULIOJ 1105: 判断友好数对(函数专题)
判斷友好數(shù)對(函數(shù)專題)
題目描述
輸入兩個(gè)正整數(shù)m和n,順序輸出m到n之間的所有友好數(shù)對。
如果兩個(gè)整數(shù)的所有正因子之和(包括1,不包括自身)等于對方,就稱這對數(shù)是友好的。例如:1184和1210是友好數(shù)對,因?yàn)?br /> 1184的因子之和為1+2+4+8+16+32+37+74+148+296+592=1210
1210的因子之和為1+2+5+10+11+22+55+110+121+242+605=1184
要求程序定義一個(gè)facsum ()函數(shù)和一個(gè)main()函數(shù),facsum ()函數(shù)計(jì)算并返回n的所有正因子之和,其余功能在main()函數(shù)中實(shí)現(xiàn)。
int facsum (int n)
{
//計(jì)算n的所有正因子之和sum,本函數(shù)返回sum
}
對于C/C++代碼的提交,本題要求必須通過定義facsum函數(shù)和main函數(shù)實(shí)現(xiàn),否則,提交編譯錯(cuò)誤,需要提交完整的程序代碼。
輸入
輸入兩個(gè)正整數(shù)m和n,1<m<=n<=10000。
輸出
輸出m和n之間的所有友好數(shù)對。
在輸出每個(gè)友好數(shù)對時(shí),要求小數(shù)在前、大數(shù)在后,并去掉重復(fù)的數(shù)對。例如,220和284是一對友好數(shù),而284和220也是一對友好數(shù),此時(shí)只需輸出220和284這對友好數(shù)。每個(gè)友好數(shù)對占一行,兩數(shù)之間用空格隔開。
如果m和n之間沒有友好數(shù)對,則輸出“No answer”。
樣例輸入 Copy
100 8000
樣例輸出 Copy
220 284
1184 1210
2620 2924
5020 5564
6232 6368
#include<stdio.h> int facsum(int n)//正因子之和 {int i,sum=0;for(i=1;i<n;i++){if(n%i==0){sum+=i;}}return sum; } int main() {int i,x,y,m,n,command=0;scanf("%d%d",&m,&n);for(i=m;i<=n;i++){x=facsum(i);// 1184的因子之和為1210y=facsum(x);//1210的因子之和為1184if((i==y)&&(x<=n)&&(x<=y)&&(i!=x)){printf("%d %d\n",x,y);command=1;}}if(command==0)printf("No answer\n");return 0; }
總結(jié)
以上是生活随笔為你收集整理的ZZULIOJ 1105: 判断友好数对(函数专题)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IDC:2006中国IT及电信市场十大发
- 下一篇: android系统自动休眠代码流程,An