C語言:完美數,求1-n之間的
輸入n,求1-n之間的完美數
完全數(Perfect number),又稱完美數或完備數,是一些特殊的自然數。如果一個數恰好等於它所有的因子之和,則稱該數為“完全數”。具體完美數定義請見完美數-百度百科
#include "stdio.h"
void main()
{
int i, j, n, sum = 0;
printf("請輸入n:");
scanf("%d",&n);
for(i = 2;i <= n; i++)
{
sum = 0;
for(j = 1; j < i; j++)
if( i%j == 0) //如果j可以被i整除,則j為i的因子
sum = sum + j; //求各因子的和
if(sum == i) //若i等於各因子的和,則i為完美數
printf("%d ",i);
}
}
測試結果:
1⃣️
請輸入n:1000
6 28 496
相關推薦
C語言:完美數,求1-n之間的
輸入n,求1-n之間的完美數 完全數(Perfect number),又稱完美數或完備數,是一些特殊的自然數。如果一個數恰好等於它所有的因子之和,則稱該數為“完全數”。具體完美數定義請見完美數-百度百科 #include "stdio.h" void main() { int
C 語言popen函數,實現shell和讀取內容
原型 stream printf fclose strong get cmd 包含 文件 1. popen()函數 頭文件:#include <stdio.h> 函數原型:FILE * popen(const char * command, const char
C語言:黑洞數495
#include <stdio.h> int a,b,c,max,min,x,y,z; int fuc(int n) { a=n/100; b=n/10%10; c=n%10; if(a<=b&&b<=c) {x=c;y=b;z=a;}
C語言:數字挑選,字母與數字個數之和
#include <stdio.h> int main() { char s; while((s=getchar())!=EOF) { if(s<58&&s>47) printf("%c",s); if(s=='\n')
C語言:預定義,設定列印除錯函式
#include <stdio.h> #include <string.h> #define pri
hdu3501 給出一個N,求1..N中與N互質的數的和
給出一個N,求1..N中與N互質的數的和 ifgcd(n,i)=1 then gcd(n,n-i)=1 (1<=i<=n) 反證法: 如果存在K!=1使gcd(n,n-i)=k,那麼(n-i)%k==0 而n%k=0
一個數如果恰好等於它的因子之和(包括1,但不包括這個數本身),這個數就稱為“完數,求1-1000中的完數
/*問題分析:問題中不是要質因數,所以找到的因數後就無需將其從資料中“除掉”。每個因數只記一次如:8的因數為1,2,4而不是1,2,2,2,4*/#include<stdio.h>int main(){int i,k,j,s,a[20];for(i=1;i<
資料結構(C語言):連結串列,約瑟夫問題
開始學習資料結構,把寫過的程式碼發上來,希望可以給有需要的人一個參考。 //本程式碼由 大漠孤煙 整理編寫,並驗證通過 //求解約瑟夫問題,涉及到連結串列節點的生成,節點的插入和刪除,對理解連結串列非常有好處 //N個節點圍城一圈,從第一個節點開始計數(1),每數
C語言:計算並輸出S=1+(1+2^0.5)+(1+2^0.5+3^0.5)...+(1+2^0.5+3^0.5+...+n^0.5)
輸出 nbsp clas return %d span file fprintf 計算 //計算並輸出S=1+(1+2^0.5)+(1+2^0.5+3^0.5)...+(1+2^0.5+3^0.5+...+n^0.5) 1 #include<math.h>
C語言輸入行數,輸出菱形
use 行數 輸出菱形 alt ima nbsp http tdi pan #include <stdio.h> #include <stdlib.h> main() { int n,i,j; scanf("%d
呼叫函式,求m-n之間的所有完數
Description 自定義函式factorsum(number),它的功能是返回number的因子和,如factorsum(12)的返回值是16(1+2+3+4+6)。 在主函式中,輸入兩個正整數m和n(m>=1, n<=1000),呼叫factorsum函式,輸出m-n之間
C++例項:計算並列印輸出1~50之間的素數
第3題: isPrime = True number_list = [] for i in range(2,51): for j in range(2,i): if i % j == 0:
從鍵盤中輸入一個整數n,求1-n的和,以及偶數和、奇數和
n=int(input("從鍵盤中輸入一個數:")) sum1=0 sum2=0 sum3=0 i=1 while i<=n: sum1+=i if i%2==0: sum2+=i else:
輸入一個數N,輸出1-N之間的所有素數,要求每行顯示五個數
int main() { int m=0; int i,j,n; scanf(“%d”,&n); for(i=2;i<=n;i++) { for(j=2;j<=i-1;j+
求1-N之間所有的素數。
描述 輸出1-N之間所有的素數。 輸入 一個整數N。(2 <=N <= 10000) 輸出 1-N之間所有的素數,含N,為了便於觀察結果,在控制檯裡每行輸出5個數,並且這五個數之間以一個空格作為分隔。 #include <stdio
求1-N之間的素數
一、什麼是素數: 素數(prime number)又稱質數,有無限個。一個大於1的自然數,除了1和它本身外(因為1既不是素數,也不是合數),不能被其他自然數(質數)整除,換句話說就是該數除了1和它本身以外不再有其他的因數. 比如:2,3,5,
求 1~n 之間素數的個數
1. 篩選法 篩選掉偶數,然後比如對於 3,而言,篩選掉其整數倍數;(也即合數一定是某數的整數倍,比如 27 = 3*9) int n = 100000000; bool flag[
利用埃拉託斯特尼篩法求1-n之間的素數
定義: 素數又稱質數,素數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數。 方法: 採用埃拉託斯特尼篩法,每次消去2、3、4、5 、6 、、、、、、的倍數,直到沒有可消的為止,剩下的數字則為素數; 每次考慮消
c語言:求多項式1-1/2+1/3-1/4+...+1/99-1/100的值,3種迴圈實現
方法一:for迴圈實現 程式: #include<stdio.h> int main() { double i = 0, t = 0,sum = 0,sign = -1; for (i =
c語言:找出1到4000中,數字的各位數之和能被4整除的數有多少個?
找出1到4000中,數字的各位數之和能被4整除的數,如:745:7+4+5=16,16可以被4整除;28:2+8=10,10不能被4整除;745就是這樣的特殊數字,而28不是,求:這樣的數字共有多少個?解:(1)對於4000,4+0+0+0=4,顯然4000是滿足條件的數字;