完数: 是指一个数等于它的因子之和,例如,6是一个完数,它的因子为1,2,3;6=1+2+3。
一、Java代码实现:
import java.util.Scanner;
public class pernum {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input =new Scanner (System.in);
System.out.println("请输入数字范围:");
int a=input.nextInt();
int b=input.nextInt();
int sum=0;
int count=0;
System.out.println("完数如下:");
for(;a<=b;a++) {
for(int i=1;i<a;i++) {
//判断因子
if(a%i==0) {
sum+=i;
}
}
//假如因子之和 与原数相同,则计数并输出
if(a==sum) {
count++;
System.out.println(a);
}
sum=0;//记得每次将sum归零
}
System.out.println("这个范围内的完数有"+count+"个");
}
}
二、C++代码实现:
//输出所输入范围以内的所有完数
#include<iostream>
using namespace std;
int main()
{
int i, n, sum;
int a, b;
cin>>a>>b;
for (n = a; n <= b; n++)
{
sum = 0;
for (i = 1; i < n; i++)
{
if (n % i == 0)
{
sum = sum + i;
}
}
if (sum == n)
{
cout << n << endl;
}
}
return 0;
}