使用c语言用函数编写素数 c语言中用函数求素数

用C语言编写一个程序,设计一个判断素数的函数1.素数是一个大于1的自然数,除了1和它本身外 , 不能被其他自然数整除 , 换句话说就是该数除了1和它本身以外不再有其他的因数;
2.在数据处理时只需要判读他的因子除了1和他本身就行了,而且只用计算到 这个数的开方就行了,因为后面的因子和前面的就会倒过来 。如同 24 - 2 x 12 和 12 x 2 一样 。
#includestdio.h
int IsPrime(int n)// 判断是否为素数
{
if (n = 1) return 0;
if (n % 2 == 0) return n == 2; // 如果是偶数,只要不是2 , 其他都是非素数
for (int i = 3; ; i += 2)
{
if (in/i) break;// 等价于 i*in, 不用开方
if (n % i == 0) return 0;
}
return 1;
}
int main()
{
int i, cnt = 0;
for (i = 1; i100; i++)
{
if (IsPrime(i))
{
printf("%3d ", i);
if (++cnt%5 == 0)// 每5个换行
printf("\n");
}
}
return 0;
}
c语言怎么求素数?除2以外使用c语言用函数编写素数 , 素数皆为奇数使用c语言用函数编写素数,所以对2单独处理使用c语言用函数编写素数,从3开始,将100以内使用c语言用函数编写素数的奇数逐一进行素数考察 , 是则输出,不是则跳过 。另设一计数变量控制换行,每输出5个素数添加一个回车 。代码如下:
#include "stdio.h"
int main(int argc,char *argv[]){
int i,n,t;
pr
#include
#include
main()
{
int a,i,flag,count=0;
for(a=1;a =100;a++)
{
flag=0;
for(i=2;i
#include int main()
{
int i,n,k,b;
for(i=1,b=1;i=100;i++)
{
for(n=2;n {
k=i%n;
if(k==0)
break;
}
扩展资料:
C语言注意事项:
1、预编译命令不是语言语句,不使用分号,不占用运行时间 。
2、在IDE中通常包括编辑器,编译器 , 汇编器和链接器 , 在这个过程中是语言等级逐级降低使用c语言用函数编写素数的过程,从最高级的c语言到中级语言汇编语言再到低级语言机器语言,编辑器生成文件为.c文件,编译器生成的文件为obj汇编器生成的文件为.0文件 , 链接器生成的是exe文件 。
3、注意 return和exit的区别, return是让本函数运行结束,而exit是让本程序运行结束 。
4、在指针定义时 , 一定要进行初始化 , 否则就会出现意想不到的错误,如果不能找到对应地址赋值,那就赋给NULL(注意大写) 。
5、gets可以 scanf办成办不成的事 , 就是可以接受空格,puts在最后会输出一个换行 。
c语言如何输出素数?第一种方法就是用1到100之间的每个数字使用c语言用函数编写素数,除以2到其本身前面的那一个数字使用c语言用函数编写素数,如果此过程中出现整除的现象,则该数不是素数 。如果没有整除的现象,则该数为素数输出 。代码如下#includestdio.h
int main()
{
int i = 0;
int count = 0;
for (i = 1; i = 100; i++)
{
int j = 0;
for (j = 2; j = i; j++)
{
if (i%j == 0)
{
break;
}
}
if (i == j)
{
count++;
printf("%d ", i);
}
}
printf("\ncount=%d\n", count);
return 0;
}
第二种方法使用使用c语言用函数编写素数了SQRT函数,也就是平方根,这里的平方根是整数 。众所周知,非素数可以写成除了1和它本身相乘的a*b方式,而a、b之间必有一个小于等于ab之积的开平方根;如果这个非素数能够被a整除,则相应的肯定会被b整除 。这种方法用1到100之间的数字除以2到它的开平方根(如果该数的平方根是整数则可以除到),在此之间如果出现整除现象,则该数不是素数;如果没有出现整除现象,则该数是素数 。显而易见,这种方法比第一种方法要简便,运行的次数少#includestdio.h

推荐阅读