鱼C论坛

 找回密码
 立即注册
查看: 1215|回复: 5

[已解决]求一百到二百之间的素数

[复制链接]
回帖奖励 1 鱼币 回复本帖可获得 1 鱼币奖励! 每人限 1 次(中奖概率 50%)
发表于 2020-12-14 21:26:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

#include<stdio.h>
#include<math.h>
int main()
{
        printf("100到200之间所有的质数为:\n");
        int n;
        for(n=100;n<=200;n++)
        {
        int y,m;
        y=sqrt(n);
       
        for(int x=2;x<=y;x++)
        {
                if(n%x==0)
                {
                m=1;
                break;       
                }
                else
                {
                m=0;
                }
        }
        if(m=0)
        {
        printf("%d\n",n);       
        }
        }
}
请问大佬我这样做为什么一个素数也出不来,看了好几遍还是没发现哪里错了,望赐教
最佳答案
2020-12-14 21:41:53
本帖最后由 jackz007 于 2020-12-14 21:48 编辑

        外层循环新的 n 值出现的时候,一定要把 m 赋 0 值,假定它就是一个素数,然后在内层循环中尽量否定,如果循环过后无法否定,那它就确实是一个素数无疑。
        还有一个问题,就是打印素数判断 m 值时,你写的是
        if(m = 0)
        这个是赋值,可不是逻辑判断
#include<stdio.h>
#include<math.h>
int main()
{
        int n , m , x                          ;
        printf("100到200之间所有的质数为:\n") ;
        for(n = 100 ; n <= 200 ; n ++) {
                for(m = 0 , x = 2 ; x <= sqrt(n) ; x ++) {
                        if(n % x == 0) {
                                m = 1          ;
                                break          ;
                        }
                }
                if(m == 0) printf("%d\n" , n)  ;
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-14 21:41:53 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2020-12-14 21:48 编辑

        外层循环新的 n 值出现的时候,一定要把 m 赋 0 值,假定它就是一个素数,然后在内层循环中尽量否定,如果循环过后无法否定,那它就确实是一个素数无疑。
        还有一个问题,就是打印素数判断 m 值时,你写的是
        if(m = 0)
        这个是赋值,可不是逻辑判断
#include<stdio.h>
#include<math.h>
int main()
{
        int n , m , x                          ;
        printf("100到200之间所有的质数为:\n") ;
        for(n = 100 ; n <= 200 ; n ++) {
                for(m = 0 , x = 2 ; x <= sqrt(n) ; x ++) {
                        if(n % x == 0) {
                                m = 1          ;
                                break          ;
                        }
                }
                if(m == 0) printf("%d\n" , n)  ;
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-12-14 21:48:31 | 显示全部楼层
jackz007 发表于 2020-12-14 21:41
外层循环新的 n 值出现的时候,一定要把 m 赋 0 值,假定它就是一个素数,然后在内层循环中尽量否 ...

明白了
m==0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-15 10:46:02 | 显示全部楼层
感谢分享!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-16 09:43:09 | 显示全部楼层
感谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-2 00:20:23 | 显示全部楼层

回帖奖励 +1 鱼币

哈哈 =  是赋值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-1-12 07:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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