完全数

19 完全数

心已入冬 提交于 2020-03-08 16:46:16
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。 for i in range ( 2 , 1001 ) : s = 0 L = [ ] for x in range ( 1 , i ) : if i % x == 0 : s += x L . append ( str ( x ) ) if i == s : print ( i , ' = ' , ' + ' . join ( L ) ) ''' 运行结果: 6 = 1 + 2 + 3 28 = 1 + 2 + 4 + 7 + 14 496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248 ''' 来源: CSDN 作者: `k 链接: https://blog.csdn.net/qq_46399291/article/details/104732216

完全数是由古人创造的一种整数,其因数的和(不包含本身)加起来就是数字本身。例如 6= 1+2+3 28=1+2+4+7+14 因数的和比数字本身大的数称为充沛数,因数和比数字本身大的数称为充沛数,因数

北战南征 提交于 2020-03-03 01:48:40
完全数是由古人创造的一种整数,其因数的和(不包含本身)加起来就是数字本身。 例如 6= 1+2+3 28=1+2+4+7+14 因数的和比数字本身大的数称为充沛数,因数和比数字本身小的数称为不足数。编写程序:从键盘上输入一个整数,判断输出这个数是完全数,充沛数还是不足数三种。 在这里插入代码片 n = int ( input ( ) ) numble = 0 for i in range ( 1 , n ) : if n % i == 0 : numble += i if numble == n : print ( '完美数' ) elif numble > n : print ( '充沛数' ) else : print ( '不足数' ) 来源: CSDN 作者: 一条河可以 链接: https://blog.csdn.net/weixin_45949073/article/details/104613855

java例题_09 1000以内的完全数

倾然丶 夕夏残阳落幕 提交于 2020-02-11 19:35:11
1 /*9 【程序 9 求完数】 2 题目:一个数如果恰好等于它的所有因子之和,这个数就称为"完数"。 3 例如 6=1+2+3.编程找出 1000 以内的所有完数。 4 */ 5 6 /*分析 7 * 1、完数:各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的和等于它本身的自然数叫做完全数 8 * 2、怎么找到一个数的所有因子---——-从1到n对n取余 9 * 3、遍历1~1000,找出每个数的所有因子再求和 10 * */ 11 12 13 14 package homework; 15 16 public class _09 { 17 18 public static void main(String[] args) { 19 //声明和s,因子a 20 int s=0,a=1; 21 //遍历1~1000 22 for (int i = 1; i <=1000; i++) { 23 //遍历1~i 24 for (int j = 1; j <i; j++) { 25 //用取余判断j是否为i的因子,如果是,将其加到和s; 26 a=i%j; 27 if(a==0) { 28 s=s+j; 29 // System.out.println(j+" "+a+" "+s+" "+i); 30 } 31 } 32 //这个i所有的因子的和是否等于i

输出100-2000之间的完全数

天涯浪子 提交于 2020-02-02 21:49:13
输出100-2000之间的完全数 思路 完全数=除本身外各因子的和;例 6=1+2+3; 第一个完全数是6,第二个完全数是28,第三个完全数是496,后面的完全数还有8128、33550336等等。 代码实现 int main ( ) { int j , i , s , count = 0 ; for ( i = 100 ; i <= 2000 ; i ++ ) { s = 1 ; //每次循环s需要重新赋值,否则s会一直累加 for ( j = 2 ; j < i ; j ++ ) { if ( i % j == 0 ) s = s + j ; } if ( s == i ) { printf ( "s:%d i:%d\n" , s , i ) ; count ++ ; } } printf ( "完全数的个数:%d" , count ) ; } 运行结果 来源: CSDN 作者: 西装Baby 链接: https://blog.csdn.net/qq_20185737/article/details/104145778

找完数

流过昼夜 提交于 2019-12-26 00:38:17
编程输出2-1000中所有的完全数,所谓的完全数是指整数n的所有小于n的正因数之和若等于n本身,则称数n为完全数。例如6的小于6的正因数为1,2,3。而1+2+3=6,则6是一个完全数。 这道题的解题思路就是遍历,首先你要遍历2-1000里的所有数字 for ( int i = 2 ; i < 1000 ; i ++ ) 接着遍历1-i中的所有数字,来找i的因子 for ( int j = 1 ; j < i ; j ++ ) 如果j是i的因子,那么他肯定能整除i或者说i%j=0 if ( i % j == 0 ) 如果j是i的因子;就把他加到因子和sum中 sum + = j ; 最后,做一个判定,如果因子和sum等于i,那么i就是完全数 if ( sum == i ) { printf ( "%d是完全数\n" , i ) ; } 下面为最简单的没优化的代码: # include <stdio.h> main ( ) { for ( int i = 2 ; i < 1000 ; i ++ ) { //遍历2-1000的所有数字 int sum = 0 ; for ( int j = 1 ; j < i ; j ++ ) { //遍历1+i之间的所有数字 if ( i % j == 0 ) //如果j是i的因子 sum + = j ; //把就j加到和中 } if ( sum =

Chapter8~条件和循环

♀尐吖头ヾ 提交于 2019-11-30 03:14:27
8-1. 条件语句。请看下边的代码: # statement A if x > 0: #statement B pass elif x < 0: #statement C else: #statement D pass #statement E (a)如果 x<0 ,上面哪个语句(A,B,C,D,E)将被执行? (b)如果x == 0,上面哪个语句将被执行? (c)如果x>0,上面那个语句将被执行? C、D、B 8-2 循环。编写一个程序,让用户输入3个数字:(f)rom,(t)o和(i)ncrement。以i为步长从f计数到t,包括f和t。例如,如果输入的是f == 2、t==26、i==4,程序将输出2,6,10,14,18,22,26. 8–3. range() . 如果我们需要生成下面的这些列表, 分别需要在 range() 内建函数中提供那些参数? (a) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] (b) [3, 6, 9, 12, 15, 18] (c) [-20, 200, 420, 640, 860] (a)print range(0, 10) (b)print range(3, 21, 3) (c)print range(-20, 980, 220) 8–4. 素数. 我们在本章已经给出了一些代码来确定一个数字的最大约数或者它是否是一个素数.