[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)...