(C++/JAVA)一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。
C++:
#include<iostream>
using namespace std;
int WS(int m){
int sum = 0;
for (int i = 1; i <= m/2; i++){
if (m%i == 0){
sum = sum + i;
}
}
if (m == sum)
return 1;
else
return 0;
}
int main(){
for (int i = 6; i <= 1000; i++){
if (WS(i) == 1)
cout << i << " ";
}
}
JAVA:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package dm;
import java.util.Scanner;
/**
*
* @author Lenovo
*/
public class DM {
/**
* @param args the command line arguments
*/
public static int WS(int m) {
int sum = 0;
for (int i = 1; i <= m / 2; i++) {
if (m % i == 0) {
sum = sum + i;
}
}
if (m == sum) {
return 1;
}
else
return 0;
}
public static void main(String[] args) {
for (int i = 6; i <= 1000; i++) {
if (WS(i) == 1) {
System.out.print(i + " ");
}
}
}
}