public class PerfectNumber{
成都創新互聯公司是專業的增城網站建設公司,增城接單;提供網站設計、網站制作,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行增城網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!
private static String[] isPrefectnumber(int n){
int sum=0;
StringBuffer sBuffer = new StringBuffer();;
for (int i = 1; i n; i++) {
if (n % i == 0){
sum += i;
sBuffer.append(","+i);
}
}
if (sum==n) {
return sBuffer.toString().replaceFirst(",", "").split(",");
}else {
return new String[0];
}
}
public static void main(String[] args){
String[] al= isPrefectnumber(t);
if (al.length!=0) {
StringBuffer sb = new StringBuffer();
sb.append(t+"是完數,其因子為");
for (int i = 0; i al.length ; i++) {
sb.append(","+al[i]);
}
System.out.println(sb.toString());
} else {
System.out.println(t+"不是完數");
}
}
}
public static void main(String[] args) {
int a, b, sum;
sum = 0;
for (a = 1; a = 1000; a++) {
for (b = 1; b a; b++) {
if (a % b == 0) {
// 此處用sum去累加了 如 sum =1 ,b =2, 則sum = 1 + 2;
sum = sum + b;
}
}
if (sum == a) {
System.out.println(sum);
}
// 如果這里不重置清零,則上方sum = sum + b; 這行語句會將上一次值累加上去,就不是我們想要的值了
sum = 0;
}
}
class PerfectNumber {
public static void main(String[] args) {
for (int i = 2; i = 1000; i++)
if (isPerfectNumber(i))
System.out.println(i);
}
static boolean isPerfectNumber(int i) {
int sumof = 0;
int j;
for (j = 1; j = i / 2; j++) {
if (i % j == 0) {
sumof += j;
}
}
return i == sumof;
}
}
你的程序我幫你改完了,改動的地方見注釋。
完整的程序如下:
public?class?A?{
public?static?void?main(String[]?args)?{
for?(int?i?=?2;?i?=?6;?i++)?{//這里把i6改成i=6?因為6是完數???
int?s=0;?//這里移動到for-i循環中?
int?j=1;?//這里移動到for-i循環中?
while(ji){????
if(i%j==0){?????
s=s+j;?????
}
j++;//這里移動到while-j循環外?
}???
if(s==i){????
System.out.print(i+"?");???
}??
}
}
}
運行結果:
6