當前位置:首頁 » 數據倉庫 » 用資料庫求完數
擴展閱讀
web前端開發我要自學網 2022-06-30 16:16:42

用資料庫求完數

發布時間: 2022-05-18 17:11:22

1. 用sql輸出1000以內的完數 急,在線等各位大神們!

select 6 from al;
select 28 from al;
select 496 from al;
1000以內的完全數只有這三個

2. 用c語言求1000以內的完數

完數,即完全數(Perfect number),又稱完美數或完備數,是一些特殊的自然數。其所有的真因子(即除了自身以外的約數)的和(即因子函數),恰好等於本身。
根據該定義 可以得出判斷完數的函數如下:
#include <stdio.h>
int is_perfect_number(int n)
{
int i,s=0;
for(i = 1; i <=n/2; i ++)
if(n%i == 0) s+= i;//統計所有真因子的和。
if(s == n) return 1;//如果與原值相等,則該數為完數。

return 0;//不是完數。
}
根據該函數,只需要對需要列印的范圍內1 ~1000做遍歷,並逐一調用該函數判斷,如果返回1則列印即可。
完整代碼如下:
#include <stdio.h>
int is_perfect_number(int n)
{
int i,s=0;
for(i = 1; i <=n/2; i ++)
if(n%i == 0) s+= i;//統計所有真因子的和。
if(s == n) return 1;//如果與原值相等,則該數為完數。

return 0;//不是完數。
}

int main()
{
int n;
for(n = 1; n < 1000; n++)
if(is_perfect_number(n)) printf("%d,",n);
}

3. 求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 初始化的位置是錯誤的,導致結果不正確,正確代碼請看我的回答。

(3)用資料庫求完數擴展閱讀:

完數,一般指完全數,一個自然數如果它的所有真因子(即除了自身以外的約數)的和等於該數,那麼這個數就是完全數,如: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 + " ");}}}}

4. c語言求解完數!

#include<stdio.h>
int main()
{
int i,j,sum=0;
int count=0;//計算完數的和
for(i=2;i<1000;i++)
{
for(j=1;j<i;j++)
{
if(i%j==0) sum=sum+j;
}
if(sum==i)
{
printf("%d 是完數\n",i);
count+=i;
}
sum=0;
}

printf("完數和為: %d\n",count);
return 0;
}

5. 怎樣用sql或pl/sql去找完全數

是導出腳本,還是數據
在PL/SQL Developer左邊的樹狀導航欄里,找到【Table】,任意選一張表,【右鍵】-【Export data】

6. C語言:怎麼求完數

先定義一個數組a[]放各因數——一定有「1」
然後定義一個數組b[999]={1,2,3,4,5……}可以用for語句賦值int i,p;
for(i=0;i<=998;i++)
{for(p=1;p<=999;p++);
b[i]=p;}放1——999
然後用各各數——可再定義數組——去剩b[]
得余數為零的放到a[]再各各無素相加等於原來的剩數的,
就為真——用一個循環,一個int變數加一,直到 結束

7. 在資料庫中怎麼求出表的數據,並能求出每列的總和怎麼用SQL實現呢

我不知道你需要hour_id 的總數還是總和,下面用子查詢可以求出hour_id 的和。
select sum(hour_id ) , count(hour_id ) from
(
select hour_id,
TICKET_FAMILY,
sum(case when hour_id in(10,11,12) then total_in else 0 end) as total_in,
sum(case when hour_id in(10,11,12) then total_out else 0 end) as total_out
from tmo_od_flow_stats_mg
where gathering_date between to_date('2015-01-05','yyyy-mm-dd') and to_date('2015-01-05','yyyy-mm-dd')
group by hour_id,
TICKET_FAMILY
) t

8. 用C語言找出1000以內的完數。

用C語言輸出1000以內所有的完數步驟如下:

1、首先打開vc6.0,新建一個項目。

9. 由用戶輸入的若干正整數,求出以下數據:所有完數、完數的個數、完數占所有輸入數據百分比以及最大的完數

完全數(Perfect number),又稱完美數或完備數,是一些特殊的自然數。它所有的真因子(即除了自身以外的約數)的和(即因子函數),恰好等於它本身。如果一個數恰好等於它的因子之和,則稱該數為「完全數」。第一個完全數是6,第二個完全數是28,第三個完全數是496,後面的完全數還有8128、33550336等等。

實際上在int可表示範圍內的完數少的可憐

1……6
2……28
3……496
4……8,128
5……33,550,336
6……8,589,869,056
7……137,438,691,328
8……2,305,843,008,139,952,128
9……2,658,455,991,569,831,744,654,692,615,953,842,176
10……191,561,942,608,236,107,294,793,378,084,303,638,130,997,321,548,169,216
11……13,164,036,458,569,648,337,239,753,460,458,722,910,223,472,318,386,943,117,783,728,128
12……14,474,011,154,664,524,427,946,373,126,085,988,481,573,677,491,474,835,889,066,354,349,131,199,152,128

示例代碼: 求出 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);
}
}

示例代碼: 求出 1000以內的所有完數

#include"stdio.h"
intisPerfect(intn){
if(n<6)return0;
intsum=0;
for(inti=1;i<n;++i){
if(n%i==0)sum+=i;
if(sum>n)return0;
}
if(sum==n)return1;
return0;
}
intmain()
{
intn,numbers=0,perfects=0;
printf("請輸入整數(負數或0退出): ");
do{
scanf("%d",&n);
if(n<=0)break;
if(isPerfect(n))++perfects;
++numbers;
}while(true);
if(numbers>0){
printf("你一共輸入%d個數,其中%d個完數,占%lf%% ",
numbers,perfects,100.0*perfects/numbers);
}else{
printf("你沒有輸入任何有效數據 ");
}
}

10. c語言編程:求(2,2000)中的完數

完數,即完全數(Perfect number),又稱完美數或完備數,是一些特殊的自然數。其所有的真因子(即除了自身以外的約數)的和(即因子函數),恰好等於本身。

根據該定義 可以得出判斷完數的函數如下:

#include<stdio.h>
intis_perfect_number(intn)
{
inti,s=0;
for(i=1;i<=n/2;i++)
if(n%i==0)s+=i;//統計所有真因子的和。
if(s==n)return1;//如果與原值相等,則該數為完數。

return0;//不是完數。
}

根據該函數,只需要對需要列印的范圍內2 ~2000做遍歷,並逐一調用該函數判斷,如果返回1則列印即可。

完整代碼如下:

#include<stdio.h>
intis_perfect_number(intn)
{
inti,s=0;
for(i=1;i<=n/2;i++)
if(n%i==0)s+=i;//統計所有真因子的和。
if(s==n)return1;//如果與原值相等,則該數為完數。

return0;//不是完數。
}

intmain()
{
intn;
for(n=3;n<2000;n++)
if(is_perfect_number(n))printf("%d,",n);
}