用C语言 求100到200之间的全部素数(每行输出10个)。 先谢谢了, 最好能够发到我邮箱418797690@qq.com

如题所述

#include "stdio.h"
#include "math.h"
main()
{ int m,i,k,h=0,leap;/*声明变量m:被测试的100-200的数;
i:从2到'm+1的平方根';
k:中间变量,用于保存 'm+1的平方根';
h:素数的计数,初始化为0;
leap:是否合数,leap=0表示已经测试为合数*/
printf("\n");
for(m=100;m<=200;m++)/*从100循环到200逐个测试是否为素数*/
{
leap=1; /*初始化标志变量leap为1,首先假定m是素数*/
k=sqrt(m+1); /*求得m+1的平方根,并保存在变量 k 中*/
for(i=2;i<=k;i++) /*用i(从2到'm+1的平方根')逐个去除m,以测试是否为素数*/
if(m%i==0) /*若能够被i整除,则不是素数,那么就把*/
{leap=0;break;} /*leap置0,并且跳出循环,因为不必继续测试余下的i+1到'm+1的平方根'了*/
if(leap) { /*如果素数标志为非零,则m是素数,那么就*/
printf("%-4d",m);h++; /*输出m,并且给计数器h加上1*/
if(h%10==0) /*素数的个数每到10的倍数就输出一个换行,为了易读的格式*/
printf("\n");
}
}/*测试下一个 m */
printf("\nThe total is %d\n",h);/*输出个数 h */
system("PAUSE");/*用系统调用执行PAUSE命令,等待用户按任一键退出*/
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-02-02
100以内质数记忆法
100以内的质数共有25个,这些质数我们经常用到,可以用下面的两种办法记住它们。
一、规律记忆法
首先记住2和3,而2和3两个质数的乘积为6。100以内的质数,一般都在6的倍数前、后的位置上。如5、7、11、13、19、23、29、31、37、41、43……只有25、35、49、55、65、77、85、91、95这几个6的倍数前后位置上的数不是质数,而这几个数都是5或7的倍数。由此可知:100以内6的倍数前、后位置上的两个数,只要不是5或7的倍数,就一定是质数。根据这个特点可以记住100以内的质数。
二、分类记忆法
我们可以把100以内的质数分为五类记忆。
第一类:20以内的质数,共8个:2、3、5、7、11、13、17、19。
第二类:个位数字是3或9,十位数字相差3的质数,共6个:23、29、53、59、83、89。
第三类:个位数字是1或7,十位数字相差3的质数,共4个:31、37、61、67。
第四类:个位数字是1、3或7,十位数字相差3的质数,共5个:41、43、47、71、73。
第五类:还有2个持数是79和97。
第2个回答  2012-02-01
#include "stdio.h"
#include "iostream.h"
#include "cmath"
int main()
{
int num=101,k,i=2;
cout<<"输出100-200间的全部素数:"<<"\n";
while (num<=200)
{
k=sqrt(num);
while(i<=k)
{
if (num%i==0)
{
break;
}
i++;
}
if (i>k)
{
cout<<num<<"\t";
}
i=2;
num=num+2;
}
cout<<"\n";

}
第3个回答  2012-02-01
已发邮箱。
第4个回答  2012-02-01
空间 里有 例程

其实,随便 搜搜 就有的

用C语言 求100到200之间的全部素数(每行输出10个)。 先谢谢了, 最好能...
for(m=100;m<=200;m++)\/*从100循环到200逐个测试是否为素数*\/ { leap=1; \/*初始化标志变量leap为1,首先假定m是素数*\/ k=sqrt(m+1); \/*求得m+1的平方根,并保存在变量 k 中*\/ for(i=2;i<=k;i++) \/*用i(从2到'm+1的平方根')逐个去除m,以测试是否为素数*\/ if(m%i==...

用c语言求100到200之间的全部素数
include <stdio.h>#include <math.h>int main(void){ int staNum=100,endNum=200,sum=0; int i,j,end; for(i=staNum;i<=endNum;i++) { end = sqrt(i); for(j=2;j<=end;j++) if(i%j==0) break; if(j==end+1) sum+=i; } printf("the sum is %d ....

C语言 求100到200之间的素数输出
素数只能被 1 和它本身所能整出呃数 既然你是求100——200之间的素数 首先做一个for循环,是从100——200的(i=100;i<=200;i++)在做一个内循环,是从2到外循环的数,然后判断能否呗整出 (j=2;j<i;j++)思路是这样的 我给你写一下程序 main(){ int i,j;for(i=100;i<=200;i+...

C语言 求100—200之间的全部素数,并且输出每10个换一行
第一个问题的分析:如果满足i<=k,则说明这个数不是素数,则不用输出,不执行下面的printf的函数,只有满足i>=k+1(其实是满足1=k+1),才能判断此数为素数,则输出。所以程序是正确的。第二个问题的分析:两个程序的最终结果是一样的,都是正确的。程序自然结束后,会有i==k+1,此时是素数,...

c语言求100-200之间的素数
思路:先定义一个函数isp用来判断一个数是否是素数,所谓素数是除了1和自身没有其他的因数,所以从2到该数减一,判断其是否可以整除该数,如果可以该数就不是素数,否则该数就是素数。最后从100到200依次判断并输出素数。参考代码:include <stdio.h>int fun(int n){int i;for(i=2;i<n;i++)...

用C语言求100-200之间的素数
对于100至200之间的每个整数,我们可以通过逐一检验其是否为素数来找出所有的素数。以下是一个简单的C语言程序,它实现了这一功能。请注意,程序中的`is_prime`函数用于判断一个数是否为素数。```c include \/\/ 函数声明 int is_prime(int n);int main() { int n;for (n = 100; n < 200; ...

编程,求100到200之间的全部素数,并按每行10个数输出
main(){ int m,k,i,n=0; \/*为什么要设n *\/ for(m=101;m<=200;m=m+2) \/*为什么m=m+2?*\/ { k=sqrt(m); \/* 为什么要开平方*\/ for(i=2;i<=k;i++) \/*i指什么*\/ if(m%i==0)break;if(i>=k+1){printf("%d",m);n=n+1;} if(n%10==0)printf("\\n"...

c语言输出100到200之间的素数
首先先找出来100~200以内的所有整数,再让这些整数对除了1和它本身以外的数求余,如果有能整除的就不是素数,否则就为素数。先找出来100到200的所有整数,都为i 用i去对除了1和它本身以外的数求余。正确的代码:include<stdio.h> int main(){ int conut = 0;int i = 0;for(i=100; i<=...

在C语言中对求100~200之间的全部素数这个程序的解释
第一句话中的i是上面程序中的循环变量,它用来描述从2到K的值的变化,如果在循环的过程中,产生了m%i的值为0的情况,则跳出循环,因此,如果i的值>=k+1,则表示在2到k之间没有数m的任何一个约数,那么这个数m就是一个素数,同时让用来计数的n加1.下面一个if是用来控制输出格式的,即每行输10个元素...

c语言编程:求100以内的全部素数,每行输出10个 怎么做啊
int main(void){int x,k,flag,n=0; \/*n用来控制每行输出10个数*\/ for(x=2;x<=100;x++){flag=1;for(k=2;k<=sqrt(x);k++)if(x%k==0) {flag=0; break;} if(flag==1){if(n%10==0) printf("\\n"); \/*10个数一行*\/ n++;printf("%5d",x);} } getchar();...

相似回答