信息学奥赛一本通 1154:亲和数
生活随笔
收集整理的這篇文章主要介紹了
信息学奥赛一本通 1154:亲和数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目鏈接】
ybt 1154:親和數
a<>b的意思是a不等于b
【題目考點】
1. 因子
自然數a的因子是指能整除a的所有自然數,但不含a本身
2. 函數
【解題思路】
設函數求一個數字的因子之和
從1開始遍歷每個整數a,求其因子之和b,如果a不等于b且b的因子之和是否與a相同,則a是親和數。
【題解代碼】
解法1:
#include<bits/stdc++.h> using namespace std; //求數字n的因子之和 int sum(int n) {int s = 0;for(int i = 1; i < n; ++i)if(n % i == 0)s += i;return s; } int main() {int a, b;for(int i = 2; true; ++i){a = i;b = sum(a);if(a != b && a == sum(b)){if(a < b)//輸出a和b,根據題目要求,先輸出小的數字,再輸出大的數字 cout << a << ' ' << b;elsecout << b << ' ' << a;break;}}return 0; }總結
以上是生活随笔為你收集整理的信息学奥赛一本通 1154:亲和数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenJudge NOI 1.8 24
- 下一篇: c 用户控件 多语言,多语言文本控件重叠