信息学奥赛C++语言:趣味整数2(亲密数)
生活随笔
收集整理的這篇文章主要介紹了
信息学奥赛C++语言:趣味整数2(亲密数)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目描述】
假設兩個正整數A 和 B是親密數,那么有如下的性質:
整數A的全部真約數(包括1,不包括A本身)之和等于B;
整數B的全部真約數(包括1,不包括B本身)之和等于A。
比如:220 和 284
220的全部真約數有:1+2+4+5+10+11+20+22+44+55+110 = 284
284的全部真約數有:1+2+4+71+142 = 220
【輸入】
一行輸入兩個數:X、Y(1<=X<=Y<=40000),求 在范圍[X,Y]之間的所有親密數。
【輸出】
每行輸出一對在范圍內的親密數(要保證第一個數小于第二個數)
【輸入樣例】
1 1000
【輸出樣例】
220 284
代碼
#include<cstdio> using namespace std; int x,y,s1,s2; int main() {scanf("%d%d",&x,&y);for(int i=x;i<=y;i++){s1=0;s2=0;for(int j=1;j<=i-1;j++){if(i%j==0){s1=s1+j;}}for(int k=1;k<=s1-1;k++){if(s1%k==0){s2=s2+k;}}if(s2==i&&i<s1&&s1<=y){printf("%d %d\n",i,s1);}}return 0; }總結
以上是生活随笔為你收集整理的信息学奥赛C++语言:趣味整数2(亲密数)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小鱼的游泳时间(洛谷-P1425)
- 下一篇: 津津的储蓄计划(信息学奥赛一本通-T10