nyist 597 完数

完数?
时间限制:1000 ms | 内存限制:65535 KB
难度:1
描述
一个数如果恰好等于不等于它本身的所有因子之和,那么这个数就被称为"完数"。例如,6的因子为1,2,3,而6=1+2+3,因此,6是完数。要求给定一个整数n,请编写程序,确定n是否是完数。

输入
每组数据输入一个n(1<=n<=10^4)
当n为-1时,输入结束。a
输出
每组数据输出一行,如果 n 不是完数,输出 No 。
否则,以 n 的因子由小到大相加的形式输出。
样例输入
1
2
6
-1样例输出
No
No
6=1+2+3

#include <stdio.h>
int main()
{
int n,i,j,s,k,a[10000];
while(scanf("%d",&n)&&n!=-1)

{ s=0; k=0;
for (j=1;j<n;j++)

if (n%j==0) { s+=j; a[k++]=j; }
if(s==n)
{ printf("%d=%d",n,1);

for(i=1;i<k;i++) printf("+%d",a[i]); printf("\n");}

else printf("No\n");

}
return 0;
}

***************************************

错误不止一处

#include <stdio.h>
int main()
{
int n,i,j,s,k,a[10000];
scanf("%d",&n);

{ s=0; k=0;
for (j=1;j<n;j++)

if (n%j==0) { s+=j; a[k++]=j; }
if(s==n)
{ printf("%d=%d",n,1);

for(i=1;i<k;i++) printf("+%d",a[i]); }

else printf("no\n");

}
return 0;
}

********************************************************

有错 有错 有错 有错 有错

#include <stdio.h>
int main()
{
int n,i,j,s,k,a[10000];
scanf("%d",&n);

{ s=0; k=0;
for (j=1;j<n;j++)

if (n%j==0) { s+=j; a[k++]=j; }
if(s==n)
{ printf("%d=%d",n,a[0]);

for(i=1;i<k;i++) printf("+%d",a[i]); }

else printf("No\n");

}
return 0;
}

******************************************************************************

雏形

#include <stdio.h>
int main()
{
int n,i,j,s,k,a[10000];
scanf("%d",&n);

{ s=0; k=0;
for (j=1;j<n;j++)

if (n%j==0) {s+=j;a[k++]=j; }
if(s==n)
for(i=0;i<k;i++) printf("%d ",a[i]);
else printf("no\n");

}
return 0;
}

******************************8

#include<stdio.h>
int main()
{
int n,i,s;
while(scanf("%d",&n)&&n!=-1)
{
s=0;
for(i=1;i<=n/2;i++)
{
if(n%i==0)
s=s+i;
}
if(s==n)
{
printf("%d=1",n);
for(i=2;i<=n/2;i++)
{
if(n%i==0)
printf("+%d",i);
}
printf("\n");
}

else
printf("No\n");
}
return 0;
}

nyist 597 完数,布布扣,bubuko.com

时间: 2024-12-28 03:37:44

nyist 597 完数的相关文章

9 完数求解

题目:一个数如果恰好等于它的因子之和,这个数就称为"完数".例如6=1+2+3.编程 找出1000以内的所有完数. 1 public class _009PerfectCount { 2 3 public static void main(String[] args) { 4 5 print(); 6 } 7 8 private static void print() { 9 System.out.println("1~1000的完整数有:"); 10 int j

九度oj 题目1050:完数

题目1050:完数 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:8778 解决:3612 题目描述: 求1-n内的完数,所谓的完数是这样的数,它的所有因子相加等于它自身,比如6有3个因子1,2,3,1+2+3=6,那么6是完数.即完数是等于其所有因子相加和的数. 输入: 测试数据有多组,输入n,n数据范围不大. 输出: 对于每组输入,请输出1-n内所有的完数.如有案例输出有多个数字,用空格隔开,输出最后不要有多余的空格. 样例输入: 6 样例输出: 6 1 #include <io

HDU_1406 完数

Problem Description 完数的定义:如果一个大于1的正整数的所有因子之和等于它的本身,则称这个数是完数,比如6,28都是完数:6=1+2+3:28=1+2+4+7+14. 本题的任务是判断两个正整数之间完数的个数. Input 输入数据包含多行,第一行是一个正整数n,表示测试实例的个数,然后就是n个测试实例,每个实例占一行,由两个正整数num1和num2组成,(1<num1,num2<10000) . Output 对于每组测试数据,请输出num1和num2之间(包括num1和

hdoj 1406 完数

完数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 23233    Accepted Submission(s): 8456 Problem Description 完数的定义:如果一个大于1的正整数的所有因子之和等于它的本身,则称这个数是完数,比如6,28都是完数:6=1+2+3:28=1+2+4+7+14. 本题的任务是判断两个正

HDU 1406.完数【筛选法以及特殊方法】【7月27】

完数 看来我的心还是不够细啊,这对一个ACMer来说,太致命了! Problem Description 完数的定义:如果一个大于1的正整数的所有因子之和等于它的本身,则称这个数是完数,比如6,28都是完数:6=1+2+3:28=1+2+4+7+14. 本题的任务是判断两个正整数之间完数的个数. Input 输入数据包含多行,第一行是一个正整数n,表示测试实例的个数,然后就是n个测试实例,每个实例占一行,由两个正整数num1和num2组成,(1<num1,num2<10000) . Outpu

1-1000之间的完数

一个数如果恰好等于它的因子和,这个数就成为完数. 例如:6 = 1 + 2 + 3.再如 8 的因子和是7(即1  + 2 + 4),8不是完数. 编程找出1000以内的所有完数. public class PerfectNum { public static void main(String[] args) { for (int i=1; i <= 999; i++) { if (isPrefectNum(i)) { System.out.println(i); } } } /** * 判断n

6=1+2+3,因此6是&quot;完数&quot;

//题目描述 //一个数如果恰好等于它的因子之和,这个数就称为"完数". 例如,6的因子为1.2.3,而6=1+2+3,因此6是"完数". 编程序找出N之内的所有完数,并按下面格式输出其因子: // //输入 //N // //输出 //? its factors are ? ? ? #include<stdio.h> int main() { int n,s,i,a[10000],l; while(scanf("%d",&n

C++实现 找出10000以内的完数

C++实现 找出10000以内的完数 #include <stdio.h> int main(){ int n; // 用户输入的整数 int i; // 循环标志 printf("输入一个整数:"); scanf("%d",&n); printf("%d=",n); // n>=2才执行下面的循环 for(i=2; i<=n; i++){ while(n!=i){ if(n%i==0){ printf("

一个数如果恰好等于它的因子之和,这个数就称为&quot;完数&quot;。 例如,6的因子为1、2、3,而6=1+2+3,因此6是&quot;完数&quot;。 编程序找出N之内的所有完数,

题目描述 一个数如果恰好等于它的因子之和,这个数就称为"完数". 例如,6的因子为1.2.3,而6=1+2+3,因此6是"完数". 编程序找出N之内的所有完数,并按下面格式输出其因子: 输入 N 输出 ? its factors are ? ? ? 样例输入 1000 样例输出 6 its factors are 1 2 3 28 its factors are 1 2 4 7 14 496 its factors are 1 2 4 8 16 31 62 124