一个关于1到100之间和与积的数学题

微信朋友圈里面有大神发了一道题,我表示没有看懂。。抽时间研究下,先发上来

Gauss和Poincare在天堂相遇了,上帝说:你们都是人间最伟大的数学家,那我来出道题考考你们谁更聪明。我在左手写一个大于1小于100的数,在右手相同写一个大于1小于100的数,然后把他们的和写在Gauss手上。把积写在Poincare手上。看看你们能不能猜出这两个数字是几。

Gauss看了手上的数字,说:“我不知道这两个数字是几。可我保证Poincare也不知道。

”

Poincare看了手上的数字,说:“我原来的确不知道那两个数字是几,可我如今知道了。

”

Gauss说:“那我也知道了。”

问题:那两个数字是几?
WITH T_NUM AS
(SELECT ROWNUM + 1 NUM FROM DUAL CONNECT BY LEVEL < 99)
SELECT A, B
FROM
(
SELECT
A,
B,
TOTAL,
 MUL,
 MUL_P,
 COUNT(DECODE(MUL_P, 1, 1 )) OVER(PARTITION BY TOTAL) VALUE
 FROM
 (
 SELECT
 A,
 B,
 TOTAL,
 MUL,
 COUNT(*) OVER ( PARTITION BY TOTAL) TOTAL_P,
 COUNT(*) OVER ( PARTITION BY MUL) MUL_P
 FROM
 (
 SELECT
 A,
 B,
 TOTAL,
 MUL,
 MIN(MUL_P) OVER ( PARTITION BY TOTAL) MUL_M
 FROM
 (
 SELECT
 A.NUM A,
 B.NUM B,
 A.NUM + B.NUM TOTAL,
 A.NUM * B.NUM MUL,
 COUNT(*) OVER ( PARTITION BY A.NUM + B.NUM) TOTAL_P,
 COUNT(*) OVER ( PARTITION BY A.NUM * B.NUM) MUL_P
 FROM T_NUM A, T_NUM B
 WHERE A.NUM < B.NUM
 )
 )
 WHERE MUL_M != 1
 )
 )
 WHERE MUL_P = 1
 AND VALUE = 1 ;
时间: 2024-10-11 13:29:19

一个关于1到100之间和与积的数学题的相关文章

编写一个程序找出100~999之间所有的水仙花数

如果一个3位数等于其各位的立方和,称该数为水仙花数. 如,所以407是一个水仙花数,编写一个程序找出100~999之间所有的水仙花数. 1 #include<stdio.h> 2 #include<stdlib.h> 3 //判断水仙花数,是则返回1 4 int isNarcissus(int n); 5 6 int main() 7 { 8 int i; 9 for(i = 100; i < 1000; i++) 10 if(isNarcissus(i)) 11 print

PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。

Python 练习 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的数,屏幕显示"太大了,请重新输入"如果小于预设的数,屏幕显示"太小了,请重新输入"如此循环,直到猜中,显示"恭喜你,猜中了!共猜了N次"N为用户猜测次数. 答案: import random def guess_number(): true_num = random.randint(1, 100) user_n

【python】编写一个程序,求100~999之间的所有水仙花数

编写一个程序,求100~999之间的所有水仙花数. 如果一个三位数等于其各位数字的立方和,则称这个数为水仙花数. 例如:153=1^3+5^3+3^3 因此153就是一个水仙花数 代码如下 #水仙花数 for i in range(100, 1000): sum = 0 temp = i while temp: sum = sum + (temp%10)**3 temp //=10 if sum == i: print(i) 原文地址:https://www.cnblogs.com/SiminL

找1~100之间素数的两种比较简单的方法

方法一:利用一个布尔类型的值的判断,优点想法更直接易懂 public static void main(String[] args) { for(int i=2;i<=100;i++){ boolean b=true; for(int n=2;n<i;n++){ if(i%n==0){ b=false; break; } } if(b==true){ System.out.print(i+"\t"); } } } 方法二:能被2和这个数本身以外的数整除的都不是素数.理解难但

(语法百题29)求出2-100之间的所有质数(素数)

知识点: 用到了指针 算法:除去1和本身,中间的所有数如果都不能被本身整除,这个数就是素数. 内容: 求出2-100之间的所有质数(素数) 输入说明: 无 输出说明: 一行一个素数 #include <stdio.h> int main() { int i,a[100],*p,j,m; p=a; for (i=2;i<=100;i++) { p=a; for (j=2;j<i;j++,p++) //每一个i,从2到i-1的每个数j被i除,余数存入数组 { *p=i%j; } p=a

52.从键盘上输入若干学生成绩(成绩在0~100之间),计算平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入

//1.建立一个for循环用于输入数据,设置退出条件 //2.算出平均成绩 #include<iostream> using namespace std; int main() { int Score,sum=0,k=0; int a[100]; float Average; cout<<"please input some students's score:"<<endl; for(int i=0;i<100;i++) { cin>&g

for语句计算1~100之间所有连续整数的和

public class MultiplicationTable{ public static void main(String[] args){ int sum=0; String flag="从1到100之间连续整数和是:" for(int i=1;i<=100;i++){ sum+=i; } System.out.println(flag+sum); } }

1到100之间的素数

1 /* 2 * 求1到100之间的质数 3 */ 4 public class Zy3 { 5 public static void main(String[] args) { 6 System.out.print("1到100之间的素数有:\n"+"\t"+1+"\n"); 7 int j=0; 8 for(int i=2;i<100;++i){ 9 for(j=2;j<i;++j){ 10 if(i%j==0) 11 break

打印0~100之间被3或5整除的数

#include <cstdio> int main() { int i = 0, j = 0; while (i <= 100 && j <= 100) { if (i < j) { printf("(%d) ", i); i += 3; } else if (i > j) { printf("[%d] ", j); j += 5; } else { printf("{%d} ", i); i