鱼C论坛

 找回密码
 立即注册
查看: 2823|回复: 6

谁能帮我详解下

[复制链接]
发表于 2012-3-20 22:40:20 | 显示全部楼层 |阅读模式
1鱼币
#include<math.h>
main()
{
int m,i,k,n=0;
for(m=101;m<=200;m=m+2)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>=k+1)
{printf("%d",m);
   n=n+1;}
      if(n%n==0)printf("\n");
}
printf("\n");
system("pause");
}
k=sqrt(m)? n=n+1? if(n%n==0)?哪位高手能够说明下,最好是把整个程序都解释下,打?的是看不懂的。

最佳答案

查看完整内容

#include//本程序是判断101~200之间的奇数是否是素数 main() //如果是,则打赢出来;如果不是,则用换行符跳过 { int m,i,k,n=0; for(m=101;m=k+1,那么m就是素数。因为经过了(k-1)次循环,i的值为k+1,m必然是素数 { printf("%d",m);//打印m n=n+1;//只要有素数n就加一,其实这个没什么用 } if(n%n==0) printf("\n");//打印换行符,这个也是故弄玄虚,执行一次循环就打印一次换行符 ...
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-3-20 22:40:21 | 显示全部楼层
#include<math.h>//本程序是判断101~200之间的奇数是否是素数

main()       //如果是,则打赢出来;如果不是,则用换行符跳过

{
        int m,i,k,n=0;
        for(m=101;m<=200;m=m+2)//该循环是判断101~200的数字是否是素数
        {
                k=sqrt(m);  //k为m的开方。sqrt是开方运算。

                for(i=2;i<=k;i++)//如果一个数m,从2~m的开方都不会被整除,那么就是素数

                        if(m%i==0)break;
                if(i>=k+1)//如果i>=k+1,那么m就是素数。因为经过了(k-1)次循环,i的值为k+1,m必然是素数

                {       
                        printf("%d",m);//打印m

                        n=n+1;//只要有素数n就加一,其实这个没什么用

                }
                if(n%n==0)
                        printf("\n");//打印换行符,这个也是故弄玄虚,执行一次循环就打印一次换行符即可

        }
        printf("\n");
        system("pause");
}
//k=sqrt(m)? n=n+1? if(n%n==0)?哪位高手能够说明下,最好是把整个程序都解释下,打?的是看不懂的。

自己弄到编译器里看下就懂了,否则注释不方便阅读
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-3-20 23:28:34 | 显示全部楼层
k是m开根号,n自增,n对自身取余,    if(n%n==0)printf("\n");这句话就是换行的意思,这个程序有错,缺少两个头文件#include<stdio.h>,#include<stdlib.h>,程序的主要功能是打印100到200之间的素数。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-3-21 00:53:28 | 显示全部楼层
  1. #include <math.h>
  2. #include <stdio.h>        //少了个这个, 虽然也行,但是好习惯是必须的
  3. /****多打几个符号回车空格不花钱*****/
  4. main()
  5. {
  6.         int m,i,k,n=0;
  7.         for(m=101;m<=200;m=m+2)
  8.         {
  9.                 k=sqrt(m);                        //把m开根, 也就是根号m, 然后把直给k
  10.                 for(i=2;i<=k;i++)
  11.                 {
  12.                         if(m%i==0)break;
  13.                         {
  14.                                 if(i>=k+1)
  15.                                 {
  16.                                         printf("%d",m);
  17.                                         n=n+1;
  18.                                         if(n%n==0)        //就是跟上一条指令有关
  19.                                                                 //如果n+1后给了n, 然后n+1后的n % n ==0说是不是+1后的n与没+1的n没有余数的就打印
  20.                                         {
  21.                                                 printf("\n");
  22.                                         }
  23.                                 }
  24.                         }
  25.                 }
  26.         }
  27.         printf("\n");
  28.         system("pause");
  29. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-3-21 18:25:41 | 显示全部楼层

为什么要使用这个 k=sqrt(m)?n自增,n对自身取余是什么意思?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-3-21 18:29:38 | 显示全部楼层
质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。换句话说,只有两个正因数(1和自己)的自然数即为素数。

#include <stdio.h>
#include <math.h>
#include <conio.h>

void main()
{
        int k,i,m;
//        double ;
        printf("input the number:   ");
        scanf("%d",&m);
        k=sqrt(m);      //省略小数,赋值为整型。
        for (i=2;i<=k;i++)
        {
                if(m%i==0)       //求余判断能否整除。能整除跳出循环。
                {
                        break;
                }
        }
        if(i>k)
        {
                printf("是素数\n");
        }
        else
        {
                printf("不是素数\n");
        }
        system("pause");
}

或许这个有帮助。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-3-21 21:31:19 | 显示全部楼层
谢谢各位,这个是我想要的 k=sqrt(m);      //省略小数,赋值为整型
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-12 05:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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