当前位置:首页 » 数据仓库 » 用数据库求完数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

用数据库求完数

发布时间: 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);
}