c语言200以内的素数
⑴ c语言设计,求200以内所有素数。
不应该把判断直接写在循环体内,这样值判断一次就输出了,m=sqrt(i);{。。那个“{”应该写在这句话前面。我改了一下。这个程序会把所有的数输出并判断,如果不要输出非素数,就把那句输出语句删了就行了。
#include
#include
void
main()
{
int
i,m,n;
for(i=1;i<=100;i++)
{m=sqrt(i);
for(n=2;n<=m;n++)
{if(i%n==0)
{printf("%d不是素数\n",i);
break;
}
}
if(n>m)
printf("%d是素数\n",i);
}
getch();
}
⑵ 求c语言编程输出200以内的素数
#include<stdio.h>
#include<math.h>
int prime(int n)
{int i;
for(i=2;i<=sqrt(n+1);i++)
if(n%i==0)return 0;
return n>1;
}
int main()
{int i;
for(i=2;i<=200;i++)
if(prime(i))printf("%4d",i);
return 0;
}
⑶ C语言 200以内素数
程序是这样的,我运行了是真确的不知道是不是最简单的。
#include <stdio.h>
#include <math.h>
void main()
{int i,j,flag,count=0;
clrscr();
for(i=2;i<=200;i++)
{flag=1;
for(j=2;j<=sqrt(i);j++)
if(i%j==0)
{flag=0;
break;}
if(flag==1)
{printf("%5d",i);
count++;
if(count%10==0)printf("\n");}}}(count%10==0意思为每行十个数够十个换行)
⑷ c语言 调用函数,输出100到200之间的所有素数
素数是只有1和自身才能整除的数。调用自定义的函数prime,对100~200间的奇数进行判断,是素数则输出。举例代码如下:
#include"stdio.h"
intprime(intn){//判断100~200间的数是否为素数
inti;
if(!(n&1))
return0;
for(i=3;i*i<=n;i+=2)
if(!(n%i))
return0;
return1;
}
intmain(intargc,char*argv[]){
intn;
for(n=101;n<200;n+=2)
if(prime(n))//调用prime判断n是否为素数
printf("%4d",n);//是则输出n
printf(" ");
return0;
}
⑸ 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<=200; i++)
{
int j = 0;
for(j=2; j<i; j++)
{
if(i%j == 0)
break;
}
if(j==i)
{
conut++;
printf("%d ", i);
}
}
printf(" ");
printf("素数个数为:%d ", conut);
return 0;
}
第二个if语句的判断条件应该是j==i;而不是i%j 。
(5)c语言200以内的素数扩展阅读:
实现的其他方法:
需要用到sort函数,也就是开平方根函数。头文件为#include<math.h>。 显而易见,任何一个数,每一对因子都是由这个数开平方后的数的左右各一个组成,所以,在求余过程中,只需要对从2到开平方之后的数求余即可。遇到可以整除的就不是素数,否则就为素数。
代码:
#include<stdio.h>
#include<math.h>
int main()
{
int count = 0;
int i = 0;
for(i=100; i<=200; i++)
{
int j = 0;
for(j=2; j<=sqrt(i); j++)
{
if(i%j == 0)
break;
}
if(j > sqrt(i))
{
count++;
printf("%d ",i);
}
}
printf(" ");
printf("素数个数为:%d", count);
return 0;
}
⑹ 用C语言编一程序,输出200~300之间的全部素数,求解啊
#include<iostream>
usingnamespacestd;
intHaveFun()
{
intSum=0;
for(intvar=200;var<=300;var++){
boolisPrime=1;
for(intfac=2;fac*fac<=var;fac++)
if(!(var%fac))isPrime=0;
if(isPrime)Sum+=var;
}
returnSum;
}
intmain()
{
cout<<HaveFun()<<endl;
return0;
}
方法二、
(6)c语言200以内的素数扩展阅读:
return 0用法:
return 0代表程序正常退出。return是C++预定义的语句,它提供了终止函数执行的一种方式。当return语句提供了一个值时,这个值就成为函数的返回值。
return语句用来结束循环,或返回一个函数的值。
1、return 0,说明程序正常退出,返回到主程序继续往下执行。
2、return 1,说明程序异常退出,返回主调函数来处理,继续往下执行。return 0或return 1对程序执行的顺序没有影响,只是大家习惯于使用return(0)退出子程序而已。
⑺ 怎么用C语言求200内所有素数
判断条件if(a%i==0)是对的,但显示的地方就不对了,你要加个判断,如果不是break出来的,那就是素数。 还有循环不必一致到a-1,其实到它的一半就够了。按照这个来修改一下如下:
int a = 3, i ;
while( a <= 200 )
{
for( i=2 ; i<=a/2; i++ )
{
if( a % i == 0 )
break ; // 跳出的不是素数
}
if( i > a/2 ) // 直到循环结束也没有找到因子的是素数
printf( "%4d", a ) ;
a ++ ;
}
⑻ C语言 输出200以内的素数,,怎么做,跪求,下面是我自己写的。。
#include<stdio.h>
void main()
{
int num,i;
for(num=0;num<=200;num++)
{
if(num==0||num==1)
continue;
else
{
for(i=2;i<num;i++)
{
if(num%i==0)
break;
}/*这里*/
if(i==num)/*这里*/
printf("%5d\n",num);
}
}
}
⑼ c语言求200以内的素数
第一层for循环i=2-200,第二层j小于i并且>1,然后判断I%j是否==0,如果是等于0的,则不是素数,之后可以考虑减少判断次数优化算法。
⑽ C语言输出100-200之间的素数
逻辑错误,准确位置为14行,正确代码如下:
#include<stdio.h>
int main()
{
int i = 0;
for (i=100; i<=200; i++)
{
int j = 0;
for (j=2; j<=i-1; j++)
{
if (i%j == 0)
{
break;
}
}
if (j>=i)
{
printf("%d",i);
}
}
return 0;
}
(10)c语言200以内的素数扩展阅读:
质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。
质数的个数是无穷的。欧几里得的《几何原本》中有一个经典的证明。它使用了证明常用的方法:反证法。具体证明如下:假设质数只有有限的n个,从小到大依次排列为p1,p2,……,pn,设N=p1×p2×……×pn,那么,
要大于p1,p2,……,pn,所以它不在那些假设的素数集合中。
如果 为合数,因为任何一个合数都可以分解为几个素数的积;而N和N+1的最大公约数是1,所以不可能被p1,p2,……,pn整除,所以该合数分解得到的素因数肯定不在假设的素数集合中。因此无论该数是素数还是合数,都意味着在假设的有限个素数之外还存在着其他素数。所以原先的假设不成立。也就是说,素数有无穷多个。
其他数学家给出了一些不同的证明。欧拉利用黎曼函数证明了全部素数的倒数之和是发散的,恩斯特·库默的证明更为简洁,哈里·弗斯滕伯格则用拓扑学加以证明。