只有6、28、496三个 package 完全数;import java.util.Scanner;public class Wanquanshu { public static void main(String[] args) { for(int i = 2;i<1001;i++){ int result = 1;for(int j = 2;j
第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。
由于只要求 1000 以内的完全数,因此用 n 的表达式粗略地估计,最多只要求出 1000 以内的梅森素数。...
你的C语言求完全数的程序,有两个问题,第一个是完全数的因子不包括完全数本身,所以j<=i应该改成j<i,第二个是求完全数因子的和所以sum+=i应该改成sum+=j,改完这两处,程序就没问题了.完整的程序如下(改动的地方见注释)include<stdio.h> include<stdlib.h> int main(){ int i,j,sum;for(...
int main(){ int a,i;for(a=1;a<=1000;a++){ int A[100]={0},j;j=0;for(i=1;i=0;j--){ b=b-A[j];} if(b==0){ printf("%d=",a);for(j=0;j<n-1;j++){ printf("%d+",A[j]);} printf("%d\n",A[j]);} } return 0;} ...
include "iostream.h"include "math.h"void main(){ int i,j,r;for(i=1;i<=1000;i++){ r=0;//因子 for(j=1;j<i;j++){ if(i%j==0)r=r+j;//因子的总和 } if(r==i)cout<<i<<endl;} }
do i=2,n m=1 do j=2,i/2 if(mod(i,j).eq.0) m=m+j if(m.gt.i) exit end do if(j.lt.i/2.or.m.ne.i) cycle write(*,*) i end do end 若输入为1000,输出为下图:至于你补充的题目 fortran代码如下:输出为:1681 尽管可能编程语言不同,但算法和结构有相通之处。希望...
如果抛开数学层面的思考,只考虑计算机层面的东西,那最快的办法就是查表。
时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 求正整数2和n之间的完全数(一行一个数)。 完全数:因子之和等于它本身的自然数,如6=1+2+3 【输入】 输入n(n≤5000)。 【输出】 一行一个数,按由小到大的顺序。 【输入样例】 7 【输出样例】 6 【题目考点】 1.因数、因子 因数(因子)是指整数...
Private Sub Command1_Click()For i = 2 To 1000 If yinzihe(i) = i Then Print Format(i, "@@@")Next i End Sub Function yinzihe(n)s = 0 For i = 1 To n \ 2 If n Mod i = 0 Then s = s + i Next i yinzihe = s End Function ...