鱼C论坛

 找回密码
 立即注册
查看: 4062|回复: 10

打出100到200之间的全部素数

[复制链接]
北北 该用户已被删除
发表于 2012-8-15 07:52:17 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-15 08:59:47 | 显示全部楼层
素数怎么算我都不知道, 不过你这输出没在循环体内啊, 估计你已经找到答案了.
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-15 09:47:02 | 显示全部楼层
2楼说的也是,一看printf语句怎么是循环结束才大爷。还有k==sqrt(m);k都没有初始化怎么使用“==”
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-15 09:56:48 | 显示全部楼层
  1. #include<stdio.h>

  2. #include<math.h>

  3. int main()
  4. {
  5.         int i,j,k;
  6.         int flag;
  7.         for(i=100;i<=200;i++)
  8.         {
  9.                 flag=1;
  10.                 k=sqrt(i);
  11.                 for(j=2;j<=k;j++)
  12.                 {
  13.                         if(i%j==0)
  14.                         {
  15.                                 flag=0;
  16.                         }
  17.                 }
  18.                 if(flag)
  19.                 {
  20.                         printf("%d\t",i);
  21.                 }
  22.         }
  23.         return 0;
  24. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-15 10:00:49 | 显示全部楼层
这是修改你的程序
  1. #include <stdio.h>
  2. #include <math.h>

  3. void main()
  4. {
  5.         int i, k, m;
  6.        
  7.         for( m = 100; m <= 200; m++ )
  8.         {
  9.                 k = sqrt(m);
  10.                
  11.                 for( i = 2; i <= k; i++ )
  12.                 {
  13.                        
  14.                         if( m % i == 0 )
  15.                                 break;
  16.                 }
  17.                 if( i >= k )
  18.                 printf("%d\t", m);
  19.         }
  20.         printf("\n");
  21. }
复制代码

评分

参与人数 1鱼币 +1 贡献 +2 收起 理由
北北 + 1 + 2

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
北北 该用户已被删除
 楼主| 发表于 2012-8-15 12:52:27 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
北北 该用户已被删除
 楼主| 发表于 2012-8-15 12:55:19 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-15 13:03:12 | 显示全部楼层
北北 发表于 2012-8-15 12:55
谢谢版主,弱弱的问下你自己写的一个flag这个变量时干什么用的,我是新手,不是很懂

在C语言里面不可以用 bool 类型的变量 就是你申明一个变量 初值为真(1) 如果在内循环中 能被整除 就把这个变量的值 赋为假(0 ) 如果都没有被整除 就证明这个数 是素数 只要在内循环结束 后 来判断这个 变量 是真是假 就可以知道这个数 是不是素数了
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-15 13:41:37 | 显示全部楼层
随便改了一下,不知道是否楼主所想
  1. #include <stdio.h>
  2. #include <math.h>

  3. void main()
  4. {
  5.         int i, k, m;
  6.        
  7.         for( m = 100; m <= 200; m++ )
  8.         {
  9.                 k = sqrt(m);  // = 跟==是不同的,前面是赋值,后面一般是判断是否相等
  10.                
  11.                 for( i = 2; i <= k; i++ )
  12.                 {
  13.                        
  14.                         if( m % i == 0 )
  15.                                 break;

  16.                 }

  17.                 if( i >= k+1 )   //这个判断要在循环体内啊,不然就不是从100-200找素数了
  18.                 printf("%d is a prime number\n", m);

  19.         }

  20. }



复制代码
小甲鱼最新课程 -> https://ilovefishc.com
北北 该用户已被删除
 楼主| 发表于 2012-8-15 22:46:53 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-16 21:18:04 | 显示全部楼层
回答都很好 学习了 。
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-14 16:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表