| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1780 人关注过本帖
标题:[有答案啦!!]盼各路高手帮忙分析一下
只看楼主 加入收藏
xyx
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2004-6-9
收藏
 问题点数:0 回复次数:22 
[有答案啦!!]盼各路高手帮忙分析一下

有答案了,帮忙看看对不对:

判断一个素数能被几个9整除

main() { long int m9=9,sum=9; int zi,n1=1,c9=1; scanf("%d",&zi); while(n1!=0) { if(!(sum%zi)) n1=0; else {m9=m9*10; sum=sum+m9; c9++; } } printf("%ld,can be divided by %d \"9\"",sum,c9); }

(盼能讲解,谢谢)

2004-06-11 10:30
曦薄远
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-6-10
收藏
得分:0 

原题的意思是这样的

任意给定一个质数q

寻找这么一个数m

这个数满足下面两个条件

首先它能被q整除

其次它的每一位是由9组成的

而且它是满足上述两个条件中最小的

2004-06-11 13:04
曦薄远
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-6-10
收藏
得分:0 

那m的位数就是最后的答案了

2004-06-11 13:08
曦薄远
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-6-10
收藏
得分:0 

我们来给出最初的几个例子

m的构造形式是这样的

10的n次方减去1(nεN且n≠0)

首先是2

显然任何一个m都不能被2整除

因为m是奇数

所以结果是0

2004-06-11 13:14
曦薄远
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-6-10
收藏
得分:0 

其次是3

第一个m

就是9

就能被3整除了

所以结果是1

2004-06-11 13:16
曦薄远
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-6-10
收藏
得分:0 

接下来是5

结果也是0

由于没任何一个一位数

乘以5之后所得的数的尾数会是9

所以没有任何一个数

乘以5之后所得的数的尾数会是9

当然我这里说的数都是自然数

故没有任何一个m能被5整除

2004-06-11 13:21
曦薄远
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-6-10
收藏
得分:0 

原来的题目的正确说法是这样的

判断一个素数能整除几个9

把主动和被动的关系调过来

就对了

当然“几个9”的说法还是不严谨

不过我已在上面做了解释

2004-06-11 13:27
曦薄远
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-6-10
收藏
得分:0 

对于再往后的质数

它能整除几个9

它能整除几个1

的说法

是等价的

2004-06-11 13:34
曦薄远
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-6-10
收藏
得分:0 

现在看7

利用给出的程序计算

结果是6

也就是说

7能整除999999

当然也能整除111111

还能整除1001

2004-06-11 13:38
曦薄远
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2004-6-10
收藏
得分:0 

那么

最后的结果

也就是n

如果是个合数的话

而且它的最小一个质因数记做r

则这个质数也能整除这样一个数

它是“n个1”除以“(n/r)个1”得来的

就如111111除以111那样

2004-06-11 13:54
快速回复:[有答案啦!!]盼各路高手帮忙分析一下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041484 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved