| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1523 人关注过本帖
标题:素数问题
只看楼主 加入收藏
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:(神vLinux飘飘)想不明白的.....最好能再想想如...
以下是引用神vLinux飘飘在2006-5-8 20:06:00的发言:

想不明白的.....最好能再想想

如果实在想不明白,教你个办法,用printf()在程序运行过程中监视所有变量变化的情况,再用getch()进行单步跟踪,那样你就能很轻松的了解程序的数据流动情况了

“如闻仙乐耳暂明”。请LZ好好听听吧。


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-08 20:10
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
以下是引用xsimon在2006-5-8 19:54:00的发言:

我当然是运行了. 但还是不太明白. 谢谢.

建议用C-Free 等编译器单步调试~ 再不明白,你跳楼


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-05-08 23:54
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:(xsimon)以下是引用–★–在2006-5-8 18:38:0...
以下是引用xsimon在2006-5-8 19:46:00的发言:

for(j=2;j*j<=i&&i%j;j++); //解释如下
循环条件:
1。首先要求除数j小于等于i的算术平方根,
      2。其次要求被检测的i不是j的倍数。
循环体呢:空语句(什么也不干)。

该语句等价于
for(j=2;j*j<=i;j++)if(i%j==0)break;
该语句还等价于
for(j=2; ;j++)if(j*j>i||i%j==0)break;
总之,break条件是循环条件的否定命题
就本题而言,根据德·摩根律
!(j*j<=i&&i%j!=0)可化简为
!(j*j<=i)||!(i%j!=0)也即
(j*j>i || i%j==0)
高中的“集合论”、大学的“离散数学重要呵。


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-09 07:01
xsimon
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2006-5-5
收藏
得分:0 
以下是引用–★–在2006-5-9 7:01:00的发言:

for(j=2;j*j<=i&&i%j;j++); //解释如下
循环条件:
1。首先要求除数j小于等于i的算术平方根,
      2。其次要求被检测的i不是j的倍数。
循环体呢:空语句(什么也不干)。

该语句等价于
for(j=2;j*j<=i;j++)if(i%j==0)break;
该语句还等价于
for(j=2; ;j++)if(j*j>i||i%j==0)break;
总之,break条件是循环条件的否定命题
就本题而言,根据德·摩根律
!(j*j<=i&&i%j!=0)可化简为
!(j*j<=i)||!(i%j!=0)也即
(j*j>i || i%j==0)
高中的“集合论”、大学的“离散数学重要呵。

"路漫漫兮, 吾将上下而求索" 谢谢.

2006-05-09 09:34
lshp5566
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-5-9
收藏
得分:0 
没错啊!!只是运行结果很多了!
既然求素数,就不要管非素数的啊!!


2006-05-09 10:43
走刀口→超
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5018
专家分:0
注 册:2006-3-14
收藏
得分:0 
以下是引用神vLinux飘飘在2006-5-8 16:32:00的发言:

改好了
int main(void){
int i,j,k;
int n;

for(i=100;i<=200;i++){
for(j=2;j<=i-1;j++) /*这边的算法可以再简单一点。j<=i/2*/
if( !(k=i%j) ) break;
printf("%d%s素数\n",i,k?"是":"不是");
}
return 0;
}

哇噻。我也写过这道题目。奇怪。再看看大家都讨论什么了。


人在江湖【走】,怎能不挨【刀】;为了能活【口】,唯有把己【超】!come on...
2006-05-09 11:00
lanen995
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2006-5-6
收藏
得分:0 
#include "math.h"
main()
{
 int m,i,k,h=0,leap=1;
 printf("\n");
 for(m=101;m<=200;m++)
{ k=sqrt(m+1);
 for(i=2;i<=k;i++)
   if(m%i==0)
    {leap=0;break;}
 if(leap) {printf("%-4d",m);h++;
      if(h%10==0)
      printf("\n");
      }
 leap=1;
}
 printf("\nThe total is %d",h);
}
tc运行是对的!!自己看看
2006-05-09 11:22
xiaotan
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2006-5-5
收藏
得分:0 
谢谢你们啊!得到您们的帮助我好开心!因为这是老师要求做的,我必须好好的完成!但是由于我的编程水平实在是烂!自己编不出来,只好求助各位高手了!以后我得多多编程了!希望能提高自己的水平!当然我很希望能得到各位的帮助!有什么问题我还可以继续问吗?再次谢谢你们拉!呵呵!辛苦了!请喝杯茶吧!
2006-05-09 20:31
xiaotan
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2006-5-5
收藏
得分:0 
谢谢各位了!有你们的帮忙我把问题解决了!非常感谢你们啊!呵呵!我的编程水平很烂的!有时候想帮帮你们!可是有觉得力不从心!我好好的努力!希望把自己的编程水平早日提高!有能力了我一定会帮大家的!!
2006-05-09 20:45
xiaotan
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2006-5-5
收藏
得分:0 
2006-05-09 20:50
快速回复:素数问题
数据加载中...
 
   



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

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