Xinao Sai Yi Yi Tong 1150: 正の整数 2 と n の間の完全な数を見つけます

【説明】

正の整数2nの間で完全な数を見つけます (行ごとに 1 つの数値)。

完全数: 因数の和はそれ自体の自然数に等しい ( 6=1+2+3など)

【入力】

n (n≤5000)を入力します

【出力】

1 行に 1 つの数値を昇順で入力します。

【入力例】

7

【出力例】

6

C++:
#include<iostream>
using namespace std;
int judge(int a);
int main()
{
    int n,k;
    cin>>n;
    for(k=2;k<=n;k++)
        if(judge(k)==k)      //判断该自然数的因子之和是否等于本身
            cout<<k<<endl;
    return 0;
}
int judge(int a)    //该函数用来计算自然数的因子之和
{
    int i;
    int term=0;
    for(i=1;i<=a-1;i++)      
        if(a%i==0)      
            term+=i;
    return term;
}
C言語:
#include<stdio.h>
int judge(int a);
int main()
{
    int n,k;
    scanf("%d",&n);
    for(k=2;k<=n;k++)
        if(judge(k)==k)      //判断该自然数的因子之和是否等于本身
            printf("%d\n",k);
    return 0;
}
int judge(int a)    //该函数用来计算自然数的因子之和
{
    int i;
    int term=0;
    for(i=1;i<=a-1;i++)      
        if(a%i==0)      
            term+=i;
    return term;
}

おすすめ

転載: blog.csdn.net/H1727548/article/details/128820171