当前位置:首页 » 编程语言 » java求1000以内的完数

java求1000以内的完数

发布时间: 2022-06-23 05:33:10

java编程求1000以内完数

class test
{
public static void main(String args[])
{
intsum=0,i,j;
for(i=1;i<=1000;i++)
{for(j=1,sum=0;j<=i/2;j++)
{
if(i%j==0)
sum+=j;
}
if(sum==i)
System.out.println("完数:"+i);
}
}
}

㈡ 1000以内的完数

求1000以内的完数的C语言代码如下:

完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。

如果一个数恰好等于它的真因子之和,则称该数为“完全数”。第一个完全数是6,第二个完全数是28,第三个完全数是496,33550336等等。截至2018年,相关研究者已经找到51个完全数。

完数,即完美数,一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3.(6的因子是1,2,3)。


#include <stdio.h>

int main()

{

int n=1000;

int r,j,i;

for(i=1;i<=n; i++){

r = 0;

for(j=1;j<i;j++){

if(i%j == 0){

r = r + j;

}

}

if(r == i){

printf("the result is:%d ",r);

}

}

return 0;

}

输出结果为: 6,28,496,

即1000以内的完数只有6、28、496三个数字。

㈢ Java,1000之内所有完数

sum不清0的话,那你的第二个
完全数
就是在第1个完全数的基础上加的值

㈣ 用java代码求1000之内的所有完全数

import java.util.ArrayList;

public class Testa {

public static void main( String[] args ) {
ArrayList<Integer> arrayList = new ArrayList<Integer>();
for ( int i = 1; i <= 1000; i++ ) {
int k=0;
for(int j=1;j<i;j++){
if(i%j==0){
k+=j;
}
}
if(k==i){
arrayList.add( i );
}
}
System.out.println(arrayList);
}

}

㈤ 求1000以内的所有完数

#include <stdio.h>
void main()
{
int i,j;
printf("1000之内的所有完数: ");
for(i=6;i<1000;i++){

int sum=0;

for(j=1;j<i;j++){

if(i%j==0)

sum = sum+j;

}
if(sum==i)printf("%d,",i);

}

}

输出结果为:6,28,496

原代码中的sum 初始化的位置是错误的,导致结果不正确,正确代码请看我的回答。

(5)java求1000以内的完数扩展阅读:

完数,一般指完全数,一个自然数如果它的所有真因子(即除了自身以外的约数)的和等于该数,那么这个数就是完全数,如:6的真因子有1 、2、3,6=1+2+3,所以6是一个完全数。

求1000以内的完数可以用C,C++、java和Pascal语言等,下面举例java语言实现代码。

用java编写1000以内的完数如下:

public class PerfectNumber {public static void main(String[] args) {System.out.println("1000以内的所有完数有:");for (int i = 2; i < 1000; i++) {// 遍历1000以内的所有整数int sum = 0;// 定义和变量for (int j = 1; j < i; j++) {if (i % j == 0) {// 满足是i的因子,就累加sum += j;}}if (sum == i) {// 满足因子之和等于i就打印该完数System.out.print(i + " ");}}}}

㈥ java求1000以内的完数且输出因子

public class test{
private static boolean isZhiShu(int num){
int count = 0;
for (int i = 1; i < num; i++) {
if(num%i==0){
count++;
}
}
if (count==0) {
return true;
}else {
return false;
}
}
private static boolean calc(int num){
int sum = 0;
if (isZhiShu(num)==false) {
for (int i = 1; i < num; i++) {
if (num%i==0) {
sum+=i;
}
}
}
if (sum==num) {
return true;
}else {
return false;
}
}
public static void showYinShu(int num){
if (calc(num)==true) {
System.out.print(num+"=");
for (int i = 1; i < num; i++) {
if(num%i==0){
if(num/2!=i){
System.out.print(i+"+");
}else{
System.out.print(i);
}
}
}
System.out.println("");
}
}
public static void main(String[] args) {
System.out.println("1000以内完数有:");
for (int i = 1; i <= 1000; i++) {
showYinShu(i);
}
}
}

热点内容
esp32搭建自己的服务器 发布:2025-02-05 18:58:00 浏览:317
wampphp升级 发布:2025-02-05 18:50:53 浏览:918
源码地带 发布:2025-02-05 18:46:37 浏览:613
我的世界服务器怎么骑别人的头 发布:2025-02-05 18:46:32 浏览:89
怎么卸载ftp账号 发布:2025-02-05 18:41:52 浏览:62
SQL指定的服务并未以 发布:2025-02-05 18:40:09 浏览:972
电脑连接不了服务器什么意思 发布:2025-02-05 18:34:46 浏览:355
2015版dw怎么配置站点 发布:2025-02-05 18:33:37 浏览:429
php数组中重复值 发布:2025-02-05 18:16:59 浏览:366
分布式存储优点 发布:2025-02-05 18:15:29 浏览:644