免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 1566 | 回复: 11
打印 上一主题 下一主题

麻烦大家帮我看看这道题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-12 16:33 |只看该作者 |倒序浏览
某四位数的各位数字的平方和等于100 问满足这个条件的四位书且是素数的数共有几个?
有人知道答案吗》在线等

论坛徽章:
0
2 [报告]
发表于 2005-11-12 16:43 |只看该作者
大家都不会吗?
这么多人看了,没一个人做出来吗?

论坛徽章:
0
3 [报告]
发表于 2005-11-12 16:43 |只看该作者
大家都不会吗?
这么多人看了,没一个人做出来吗?

论坛徽章:
0
4 [报告]
发表于 2005-11-12 17:39 |只看该作者

  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int m, n;
  5.        
  6.         int sum = 0;

  7.         int counter = 0;

  8.        
  9.         for (n = 1000; n <= 9999; n++)
  10.         {
  11.                
  12.                 for (m = 2; m < n; m++)
  13.                 {
  14.                         if (n % m == 0)
  15.                                
  16.                                 goto fuck;
  17.                 }
  18.                
  19.                 if ((n / 1000) * (n / 1000) +  
  20.                         (n / 100 % 10) * (n / 100 % 10) +
  21.                         (n / 10 % 10) * (n / 10 % 10) +
  22.                         (n % 10) * (n % 10) == 100)
  23.                         counter++;
  24. fuck:
  25.                 continue;
  26.         }

  27.         printf("%dn", counter);
  28.        
  29.         return 0;
  30. }
复制代码


代码很臭,没有技术含量.

论坛徽章:
0
5 [报告]
发表于 2005-11-12 17:42 |只看该作者
求出来是5个.

论坛徽章:
0
6 [报告]
发表于 2005-11-12 18:21 |只看该作者
设这个 4 位数是 xyzw, 则

x^2+y^2+z^2+w^2=0 (mod 4)

左边 mod 4 的结果可能为  0 0 0 0 或 1 1 1 1, 前者不为素数,所以
x^2=y^2=z^2=w^2 (mod 4)

即 x, y, z, w 均为奇数,可为 1, 3, 5, 7, 9 平方后为  1, 9, 25, 49, 81

(1) 设 x, y, z ,w  中最大者为 9

则 100-9^2 = 19 = 1 + 9 + 9 ==>  {x, y, z, w} ={1, 3, 3, 9}

(2) 设 x, y, z, w 中最大者为  7

则 100-7^2 = 51 = 49 + 1 + 1 = 25 + 25 + 1, 故
{x, y, z, w} = {1, 1, 7, 7}  或 {1, 5, 5, 7}
但对后者, 1+5+5+7 是 3 的倍数,构成的必定是合数
前者同样不能构成素数,这是因为
1000x+100y+10z+w = 10(100x+z) + (100y+w)
如果 x, z 相同,则 y,w 相同, 有因子 101
如果 x,z 不同,则 y, w 也不同。 如果 x =y, 则  z=w ==> 有因子 100x+z。如果 x!=y
则 1000x+100y+10z+w = 100*701+107 或 100*107+701  均为合数。

(3) 设 x,y, z, w 中最大者为 5
则 {x,y,z,w} = {5, 5,5,5}  xyzw 不是素数。

总之, 只有 {1, 3, 3, 9} 这种情况, 共 4!/2!= 12  种情况,排除掉合数就行了。

论坛徽章:
0
7 [报告]
发表于 2005-11-12 18:30 |只看该作者
强啊

论坛徽章:
0
8 [报告]
发表于 2005-11-12 19:00 |只看该作者
BZ...不是很明白...
x^2+y^2+z^2+w^2=0 (mod 4)

左边 mod 4 的结果可能为  0 0 0 0 或 1 1 1 1, 前者不为素数,所以
x^2=y^2=z^2=w^2 (mod 4)

这个...为什么不是0211/0301 ?

论坛徽章:
0
9 [报告]
发表于 2005-11-12 19:16 |只看该作者
原帖由 win_hate 于 2005-11-12 18:21 发表
设这个 4 位数是 xyzw, 则

x^2+y^2+z^2+w^2=0 (mod 4)

左边 mod 4 的结果可能为  0 0 0 0 或 1 1 1 1, 前者不为素数,所以
x^2=y^2=z^2=w^2 (mod 4)

即 x, y, z, w 均为奇数,可为 1, 3, 5, 7, 9 平方 ...


A shell program can solve that:


$ var=($(seq 1000 9999 | factor |awk -F':' '$1==$2{print $1}'))
$ x=0
$ while((x++<${#var[@]})); do echo "${var[x]:0:1}^2+${var[x]:1:1}^2+${var[x]:2:1}^2+${var[x]:3:1}^2" | bc ; done| sed -n '/100/='

result:
var[126]=1933
var[298]=3319
var[309]=3391
var[377]=3931
var[963]=9133

论坛徽章:
0
10 [报告]
发表于 2005-11-12 19:33 |只看该作者
dbcat,你的 shell 好牛哦,好象能干任何事情。几时教教我吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP