先建立一个初始的素数表,例如:100以内的素数数组,用来快速判断是否是素数对于超过100的素数,算法,用不大于根号n的素数,对n进行试除,如果都不能除尽,则为素数。
#include <stdio.h>
#include <math.h>
//判断是否为素数的函数
int isPrime(int n)
{
int i=2;
while(i<=(int)sqrt(n))
{
if(n%i == 0)
return 0; //不是素数,直接返回0
else
i++;
}
return 1;
}
int main()
{
int n;
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);
return 0;
}
扩展资料;
首先,本文英文字母都表示整数,上半部B 》3N 》W,下半部B 》W 》3N。大于3的素数只有6N-1和6N+1两种形式,我们只需判定这两种数是素数还是合数即可。
命题 1 对于B=36N+1 形数而言。
若不定方程(3N)^2+N-(B-1)/36=W^2 有整数解,
则 6(3N-W)+1 是小因子数;6(3N+W)+1 是大因子数。
若不定方程 (3N)^2-N-(B-1)/36=W^2 有整数解,
则 6(3N-W)-1 是小因子数;6(3N+W)-1 是大因子数。
参考资料来源:百度百科-质数
#include
<stdio.h>
_Bool
sspd(unsigned
long
long
i);
int
main(void)
{
unsigned
long
long
x;
printf("
请输入
1
个正整数;");
while(scanf("%llu",&x)==1
&&
x)
{
if(sspd(x)
&&
x!=1
||
x==2)
printf("
%llu
是素数\n\n",x);
else
printf("
%llu
不是素数\n\n",x);
printf("
请输入
1
个正整数;");
}
return
0;
}
_Bool
sspd(unsigned
long
long
srs)
//必须:srs>2
{
unsigned
long
long
div;
for(div=2;div*div<srs+1;div++)
if(!(srs%div))
return
0;
return
1;
}
写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息
include <stdio.h> include <math.h> \/\/判断是否为素数的函数 int isPrime(int n){ int i=2;while(i<=(int)sqrt(n)){ if(n%i == 0)return 0; \/\/不是素数,直接返回0 else i++;} return 1;} int main(){ int n;printf("输入一个正整数: ");scanf("%d",&n);if(isPrime...
用C语言写一个判素数的函数,在主函数输入一个整数,输出是否素数的信息...
输出是否素数的信息的源代码如下:include <stdio.h> include <stdbool.h> bool prime(int x){ if (2 > x ) { return false;} for (int i = 2; i < x ; i++) { if (0 == x % i ) { return false;} } return true;} int main(){ for (int i = 2; i < 100; i+...
c语言程序改错写一个判别素数的函数,在主函数输入一个整数,输出是否素 ...
include <stdio.h> int main(){ int n,i;printf("输入指定的正整数(一个大于1的正整数) :");scanf("%d",&n);printf("1到%d之间的质数有 :",n);int fun(int n);for(i=2;i<=n;i++){ if(fun(i)==1)printf("%2d ",i);} return 0;} int fun(int n){ int i;for(...
C语言编程 写一个判断素数的函数,在主函数输入一个整数,输出是否...
int i;for (i=2;i<n;i++)if(n%i==0)return 0;return 1;} void main(){ int n;printf("请输入一个数:");scanf("%d",&n);if(isprime(n))printf("%d是素数\\n");else printf("%di不是素数\\n"); }
写一个判别素数的函数prime(),在主函数输入一个整数,判断输出是否是素数...
int number;int prime(int number);printf("请输入一个正整数:\\n");scanf("%d",&number);if (prime(number))printf("\\n %d是素数. ",number);else printf("\\n %d不是素数. ",number);}int prime(int num) \/*此函数用于判别素数*\/ { int flag=1,n;for(n=2;n<num\/2 &&flag ...
用C++编写一个判别素数的函数,在主函数中输入一个整数,通过参数调用...
int main(){ int m;while(1){ printf("请输入数字(输入0退出):");scanf("%d",&m);if (m == 0){ return 0;} if (fun_m(m)){ printf("%d是素数!",m);} else { printf("%d不是素数!",m);} } return 0;} int fun_m(int x){ int n,flag=1;for(n=2;n<x;n++)...
...在主函数中输入一个整数,输出是否是素数的信息。要求: (1)编_百 ...
include<cmath> using namespace std;void fun(int a){ int k,i;k=sqrt(a);for(i=2;i<=k;i++)if(a%i==0)break;if(i>k)cout<<a<<"是素数"<<endl;else cout<<a<<"不是素数"<<endl;} main(){ int a;cout<<"请输入一个整数";cin>>a;fun(a);return 0;} ...
编写一个判断素数的函数,并在主函数中调用,验证函数的正确性,以C语言...
int sushu (int n){ int j,m;if (((n%2)!=0)||(n<=4))m=0;elseif for(j=2; j <= (int)(floor(sqrt((double)(n)));j++){ if ((n%j)==0){ m=0;break;} } else m=1;return(m)} 返回值为1为素数;返回值为零为非素数。
c语言写判断素数?
printf("请输入一个整数:");scanf("%d", &num);\/\/ 调用函数判断是否为素数,并输出结果 if (isPrime(num)) { printf("%d 是素数。\\n", num);} else { printf("%d 不是素数。\\n", num);} return 0;} 这个程序首先定义了一个 isPrime 函数,用于判断一个数是否为素数。然后在 main ...
C语言,编写函数判断一个整数是否为素数,在主函数中调用该函数并输出10...
int i;int result = 1;if(n==1)return 0;for(i=2;i<n;i++){ if(n%i==0){ result = 0;break;} } return result;} int main(){ int n;printf("100以内的素数包括:\\n");for(n=1;n<=100;n++){ if(is_prime_number(n)){ printf("%d ",n);} } printf("\\n");retu...