㈠ 編程找出1000以內所有的完數,並輸出每個完數的所有因子
# include<stdio.h>
int main()
{
int n,i,sum;/*定義變數*/
for(n=2;n<=1000;n++)/*給變數賦初值實現循環*/
{sum=0;
for(i=1;i<=n;i++)
{
if(n%i==0)
sum=sum+i;/*把它的因數累加起來賦給sum存儲起來*/
if(sum==n)/*因數之和等於給出的那個數n*/
{
printf(" %d its factors are",n);/*輸出n的值*/
for(i=1;i<n;i++)
{
if(n%i==0) printf("%d,",i);/*把i的值依次輸出*/
} printf("\n"); /*輸出完一列之後換行*/
}
}
}
return 0;
}
㈡ 求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 初始化的位置是錯誤的,導致結果不正確,正確代碼請看我的回答。
完數,一般指完全數,一個自然數如果它的所有真因子(即除了自身以外的約數)的和等於該數,那麼這個數就是完全數,如: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 + " ");}}}}㈢ C++程序 要求輸出1000以內的完數
if(n/i-int(n/i)==0)錯了。
1、if(n/i-int(n/i)==0)這個改為if(n%i == 0)
2、找到一個完數以後,沒有把s初始化為0,所以後面肯定會出錯。在n=n+1;後面加s=0。
C++不僅擁有計算機高效運行的實用性特徵,同時還致力於提高大規模程序的編程質量與程序設計語言的問題描述能力。
(3)編程1000以內的完數擴展閱讀:
使用C++編程時的有關事項:
1、開發環境,為了方便測試,將調試環境做成解釋型的。即開發過程中,以解釋型的逐條語句執行方式來進行調試,以編譯型的脫離開發環境而啟動運行的方式來生成程序最終的執行代碼。
2、生成程序是指將源碼轉換成一個可以運行的應用程序的過程。如果程序的編寫是正確的,那麼通常只需按一個功能鍵,即可搞定這個過程。
3、對程序進行編譯,這需要用到編譯器。編譯器將C++語句轉換成機器碼(也稱為目標碼);如果這個步驟成功,下一步就是對程序進行連接,這需要用到鏈接器。
㈣ C++ 編寫程序求1000以內的所有完數
#include<iostream>
usingnamespacestd;
intmain()
{
inta,i,f;
for(a=2;a<=1000;a++)
{
f=0;
for(i=1;i<a;i++)
{
if(a%i==0)
f=f+i;
}
if(f==a)
cout<<a<<endl;
}
return0;
}
㈤ 用VC編程,求1000以內的完數
您好!下面的程序調試通過結果正確。
#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>
void main()
{
int i,j,wanshu,sum = 0;
for(i=1;i<=1000;i++)
{
wanshu = 0;
for(j = 1;j<i;j++)
{
if(i%j==0)
wanshu+=j;
}
if(wanshu == i)
{
sum += wanshu;
if(wanshu == 6)
printf("%d",wanshu);//列印第一個完數
else
printf("+%d",wanshu);//列印後續完數
}
}
printf("=%d\n",sum);//列印=和
system("pause");
}
㈥ c++編程求1000內的所有完數
main()
{
static
int
k[10];
//設因子最多10個,怕不夠用可以設再大些
int
i,j,n,s;
for(j=2;j<1000;j++)
//找完數
{
n=-1;
//k數組下標
s=j;
//測試數j,s為臨時計算用
for(i=1;i<=sqrt(j);i++)
//挨個找因數
{
if((j%i)==0)
//j可以整除i嗎
{
n++;
//下標從0開始計
s=s-i;
k[n]=i;
//加入i到k數組中
}
}
if(s==0)
//s減完所有因數為0嗎?是則j為完數
{
printf(\"%d
is
a
wanshu\",j);
for(i=0;i<=n;
printf(\"%d,\",k[i]);
//挨個輸出j的各因子
printf(\"%d\\n\",k[n]);
}
}
}
㈦ c語言,求一個程序,輸出所有1000以內的完數
#include"stdio.h"
intmain()
{
intj,k,sum=0;
for(k=2;k<=1000;k++)
{
sum=0;
for(j=1;j<k;j++)
if(k%j==0)
sum=sum+j;
if(sum==k)
printf("%d",k);
}
return0;
}
㈧ C++編程,求1000以內的完數並每行按格式輸出其因子:6=1+2+3
void is_Perfectnumber(int number) //判斷完數並輸出
{
int i = 0;
int j = 0;
int sum = 0;
int arr[100] = { 0 };//定義一個數組,存儲因子
for (i = 1; i <= number/2; i++) //判斷完數
{
if (0 == number % i)
{
arr[j] = i;
j++;
sum = sum + i;
}
}
if (number == sum)
{
printf("%3d its factors are ",sum);
int k = 0;
for (k = 0; k < j; k++) //輸出完數的各個因子
{
printf("%d ", arr[k]);
}
printf(" ");
}
}
int main()
{
int num = 0;
for (num = 1; num <= 1000; num++)
{
is_Perfectnumber(num);
}
system("pause");
return 0;
}
(8)編程1000以內的完數擴展閱讀:
C++ 中的函數定義的一般形式如下:
return_type function_name( parameter list ){ body of the function}
在 C++ 中,函數由一個函數頭和一個函數主體組成,下面列出一個函數的所有組成部分。
返回類型:一個函數可以返回一個值。return_type是函數返回的值的數據類型。有些函數執行所需的操作而不返回值,在這種情況下,return_type 是關鍵字void。
函數名稱:這是函數的實際名稱。函數名和參數列表一起構成了函數簽名。
參數:參數就像是佔位符。當函數被調用時,您向參數傳遞一個值,這個值被稱為實際參數。參數列表包括函數參數的類型、順序、數量。參數是可選的,也就是說,函數可能不包含參數。
函數主體:函數主體包含一組定義函數執行任務的語句。
㈨ 用C語言輸出1000以內所有的完數
用C語言輸出1000以內所有的完數步驟如下:
1、首先打開vc6.0,新建一個項目。