zoukankan      html  css  js  c++  java
  • 完数

    方法一

     #include"stdio.h"
    #include"math.h"
    void sortPosition(int a[],int n);
    void main()
    {
    int i,j,s,n;
    int a[1000];
    int count=0;

    printf("1000以内的完数 ");

    for(i=1;i<=1000;i++)
    {
    s=1;
    a[0]=1;
    n=1;
    for(j=2;j<sqrt(i);j++)
    {
    if(i%j == 0)
    {
    s += j+i/j;
    //s+=i/j;
    a[n]=j;
    a[++n]=i/j;
    n++;
    }

    }
    sortPosition(a,n);
    if(s==i && s!=1)
    {
    printf("%d 完数是",i);
    count++;

                for(j=0; j<n; j++)
    {
    printf("%d ",a[j]);
    }  
                  printf(" ");

    }
    }
    printf(" 1000以内的完数有%d个 ",count);
    }
    void sortPosition(int a[],int n)
    {
    int i,j,temp;
    for(i=0;i<=n-1;i++)
    {
    for(j=i+1;j<=n-1;j++)
    {
    if(a[j]<a[i])
    {
    temp=a[j];
    a[j]=a[i];
    a[i]=temp;
    }

    }
    }

    方法二

    #include<stdio.h>
    void main()
    {
    int i,j,s,n;
    int a[1000];
    int count=0;

    printf("1000以内的完数 ");

    for(i=2;i<=1000;i++)
    {
    s=0;
    n=0;
    for(j=1;j<i;j++)
    {
    if(i%j == 0)
    {
    s += j;
    a[n++]=j;
    }

    }
    if(s == i)
    {
    printf("%d ",s);
    count++;

    //printf("%d 完数是 ",n);
    for(j=0; j<n; j++)
    printf("%d ",a[j]);
    printf(" ");

    }
    }
    printf(" 1000以内的完数有%d个 ",count);
    return 0;
    }

  • 相关阅读:
    2、函数
    二者取其一(初遇)_网络流
    P1879 [USACO06NOV]玉米田Corn Fields
    P2831 愤怒的小鸟
    P2296 寻找道路
    序(不知道是什么时候的模拟题)
    P2243 电路维修
    P1273 有线电视网
    P2613 【模板】有理数取余
    P1373 小a和uim之大逃离
  • 原文地址:https://www.cnblogs.com/hongou/p/10825910.html
Copyright © 2011-2022 走看看