三九宝宝网宝宝教育教学论文

如何编写一个c语言程序判断是否为素数

02月28日 编辑 39baobao.com

[C语言判断一个数是否为素数]原发布者:邂逅枫林 } if(i==val) printf("YES!\n"); else printf("No!\n");}注:for循环的功能:①若能整除,通过break跳出函数②若一直到val-1都不能整除,此时i再自增1到val,不满足i<val...+阅读

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

#include

#include

//判断是否为素数的函数

intisPrime(intn)

{

inti=2;

while(i<=(int)sqrt(n))

{

if(n%i == 0)

return0; //不是素数,直接返回0

else

i++;

}

return1;

}

intmain()

{

intn;

printf("输入一个正整数: ");

scanf("%d",&n);

if(isPrime(n))

printf("%d is a prime number\n",n);

else

printf("%d is not a prime number\n",n);

return0;

}

示例运行结果:

输入一个正整数: 29

29 is a prime number

输入一个正整数: 25

25 is not a prime number

求C语言编程判断一个数是不是素数

用6n+1,6n-1,判断简单。筛选法也可以

给出筛选法的代码

#include

#define MAXSIZE 200

#define DELETED 1

#define KEPT 0

void main(void)

{

int sieve[MAXSIZE+1]; /* 待筛数组 */

int count = 1; /* 素数总数 */

int prime;

int i, k;

printf("/n埃拉托斯散筛法");

printf("/n=========================");

printf("/n/n2 到 %d 之间的素数为:/n", MAXSIZE*2+3);

for (i = 0; i < = MAXSIZE; i++)

sieve[i] = KEPT; /* 初始状态未筛出 */

for (i = 0; i <= MAXSIZE; i++)

if (sieve[i] == KEPT) {

prime = i + i + 3;

count++;

for (k = prime + i; k <= MAXSIZE; k += prime)

sieve[k] = DELETED; //筛出

}

printf("/n%6d", 2);

for (i = 0, k = 2; i <= MAXSIZE; i++)

if (sieve[i] == KEPT) {

if (k > 10) {

printf("/n");

k = 1;

}

printf("%6d", 2*i+3);

k++;

}

printf("/n/n总共有 %d 个素数。", count);

}

//

//

6n+1,6n-1法代码

#include

int main()

{

int data[5]={2,3,5,7};

int n;

scanf("%d",&n);

if(n==2||n==3||n==5||n==7)

{

printf("%d是素数\n",n);

}

else

{

if((n+1)%6==0||(n-1)%6==0)//n等于6k+1或6k-1

{

if(n%5&n%7)

{

printf("%d是素数\n",n);

}

}

else printf("%d不是素数\n",n);

}

return 0;

}

以下为关联文档:

c语言中如何求素数#include<stdio.h> #include<math.h> void main() // 这里不要搞错了,main { int i,n; printf("输入一个整数n"); scanf("%d",&n); n=abs(n); if(n>2) { for(i=2;i<n;i++)// 在for下...

一个c语言的求素数函数详细分析如下,不懂可以追问 这个地方的处理逻辑有问题,这里是判断flag等于1就打印i的值,可是你i的值用什么来保存?也就是说,根据上面的循环判断的时候,i会一直自增到b,那么如果b是...

C语言程序素数问题#include <stdio.h> int main() { int i,n; scanf("%d",&i); for(n=2;n<i;n++) { if(i%n==0) { printf("不是素数"); return 0; } } printf("是素数"); return 0; }...

c语言问题计算请编写函数isprime用来判断一个整数a是否为#include "stdio.h" int isprime(int a) { int j; for(j=2;j<a;j++) if(a%j==0) return 0; else return 1; } void main() { int x,y; printf("请输入一个整数:"); scanf("%d",&x); y=...

编写函数isprimeint a用来判断a是否为素数若是返回1否则返回01 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #include <stdio.h> #include <math.h> intIsPrime(intx) { inti; for(i = 2; i <= sqrt(x)...

如何使用Visual Studio 2010编写一个C语言程序方法/步骤 双击打开Vs 2010 找到左上角的新建项目并点击打开,选择win32控制台程序,给文件命名,如123,单击确定 点击下一步,注意,此时出现的对话框一定要把空项目前面给勾上,单击下...

请大家编写一个C语言程序#include<stdio.h> int main() { int a[3][5],i,j,min; printf ("input a[][]:\n"); for (i=0;i<3;i++) { for(j=0;j<5;j++) scanf("%d",&a[i][j]); } min=a[0][0]; for(i=0;i<3...

C语言编写一个图形程序#include <stdio.h> void doprint(int i,int n) { int j; for(j=1;j<n+1-i;j++) { printf("%s"," "); } for(j=1;j<i+1;j++) { printf("%s","* "); } printf("%s","\n"); } void main()...

编写一个简单的C语言程序#include "stdio.h" #include "string.h" #define N 300 void main(){ char a[N],sum='\0'; int i=0,k; printf("input the number:"); scanf("%s",a); k=strlen(a); printf("%d",sum)...

推荐阅读
图文推荐