打印100到200之间的素数

原创 2018年04月17日 14:05:26

素数的定义是除了1和它本身,不能被其他数整除。最简单的方法就是把1和它自己之间的数全都遍历一遍。代码如下:

#include <stdio.h>
int main()
{
int i = 0;
int j = 0;


for (i = 100; i <= 200; i++)
{
for (j = 2; j < i; j++)
{
if (i%j == 0)
{
break;
}
}


if (i == j)
{
printf("%d\n", i);
}
}
system("pause");
return 0;

}

上述方法有个缺点就是效率太低,虽然说是短短几行代码看不出来效率,但若是在大型工程中,太耗费时间,接下来对它进行优化。求100到200之间的素数,可以把100到200之间的偶数全部排除,遍历的数据少了一半,效率就提高了二倍。代码如下:

int main()
{
int i = 0;
int j = 0;

for (i = 101; i <= 200; i += 2)
{
for (j = 2; j < i; j++)
{
if (i%j == 0)
{


break;
}
}


if (i == j)
{
printf("%d\n", i);
}
}
system("pause");
return 0;

}

如果再要对其进行优化,可以思考一下下面的知识。

假如m=a*b   则a和b中至少有一个数字小于√m。举个栗子:m=4*4=2*8     2到√m中没有能被整除的,则√m到m中也没有。所以对其优化的代码如下:

int main()
{
int i = 0;
int j = 0;


for (i = 100; i <= 200; i++)
{
for (j = 2; j <=sqrt(i); j++)
{
if (i%j == 0)
{
break;
}
}
if (j > sqrt(i))
{
printf("%d\n", i);
}
    }
system("pause");
return 0;
}


求100到200素数并分行(每行6个)打印

#include #include             ---------------------一开始的一个疑惑:当k值取穷,打印的语句放在那里??? int main()     ...
  • LVMJIE
  • LVMJIE
  • 2015-03-24 19:14:16
  • 829

用c语言输出100到200之间的素数

素数,就是除了1和他本身,不能被其他数整除的数字。 今天我们将用三种不同的方法来实现“输出100到200之间的素数”,请往下看: 1、第一种方法就是用100到200之间的每个数字,除以2到其本身前面的...
  • z382196849
  • z382196849
  • 2017-11-18 11:58:23
  • 4705

Java-输出100-200之间的质数

使用break 和 continue 在for循环中判断100-200之间的质数。 代码如下:package com.oraleoaec.ch05;/** * 输出100-200之间的质数 * ...
  • blue_hh
  • blue_hh
  • 2017-07-20 14:27:51
  • 1205

c/c++_找出100到200之间的全部素数并输出

/* * Copyright (c) 2011, 烟台大学计算机学院 * All rights reserved. * 作 者:解晓东 * 完成日期:2012 年 10...
  • a191030148
  • a191030148
  • 2012-10-22 16:02:20
  • 14702

C++求100到200之间的素数

  • 2009年07月18日 17:13
  • 864KB
  • 下载

JAVA实现输出100到200之间的素数

public class Test { public static void main(String args[]){ boolean a=false; for(int i=100;i
  • Liupeng8989
  • Liupeng8989
  • 2013-04-01 16:23:48
  • 3290

判断100到200之间的素数的方法的不断优化

方法一:           判断一个数是否是素数,比如101,我们首先能想到的最直观的方法就是让101除以2到100之间所有数,如果都不能整除,那么说明101就是素数;如果被2到100之间的任意一个...
  • qq_36129744
  • qq_36129744
  • 2016-10-11 12:40:48
  • 3342

Java中打印100-200之间的素数

public class test02 { public static void main(String args[]) { int flag=0,k=0; for(int i=101;i ...
  • xuejiawei123
  • xuejiawei123
  • 2013-07-08 16:28:33
  • 1434

求100到200间的全部素数

/*求100到200间的全部素数*/ #include #include int main(){ int i,n,k,m=0; for(n=101;n {   k=sqrt(n);   ...
  • Xidian2850
  • Xidian2850
  • 2015-07-07 17:06:06
  • 1232

【C】打印100-200之间所有的素数

素数定义:在大于1的自然数中,除了1和它本身以外不再有其他因数。解题思路:假设该数字是 i,首先不考虑偶数(可以被 2 整除)的情况,其次用 i 对 3-sqrt(i) (ps:这里从3开始是不考虑偶...
  • sustzc
  • sustzc
  • 2018-03-19 13:00:10
  • 141
收藏助手
不良信息举报
您举报文章:打印100到200之间的素数
举报原因:
原因补充:

(最多只允许输入30个字)