判断一个数是否素数的函数可以这样写:
成都创新互联网络公司拥有十年的成都网站开发建设经验,近千家客户的共同信赖。提供网站建设、成都网站制作、网站开发、网站定制、买友情链接、建网站、网站搭建、响应式网站开发、网页设计师打造企业风格,提供周到的售前咨询和贴心的售后服务
int
chk(int
x)
{
ok=1;
for
(i=2;ix
ok==1;i++)
if
(x%i==0)
ok=0;
return
ok;
}
把80撤分为两个素数之和的程序代码可以这样写:
main()
{
int
i;
for
(i=2;i=40;i++)
if
(chk(i)
chk(80-i))
printf("80=%d+%d\n",i,80-i);
}
超级素数是指从个位起删除0位、1位、2位……直到只剩最后1位都是素数的十进制正整数。可以自定义一个素数判断函数,对某一正整数n及从个位起每删除1位的新数逐一进行判断,都是素数的则是题解。以下代码先要求输入正整数n,输出2~n之间的所有超级素数:
#include "stdio.h"
int prime(int n){//判断素数,素数返回0,否则返回1
int i;
if(n2 !(n1) || n2)
return 1;
for(i=3;i*i=n;i+=2)
if(!(n%i))
return 1;
return 0;
}
int main(int argc,char *argv[]){
int n,i,t;
printf("Input n(int n1)...\nn=");
if(scanf("%d",n)!=1 || n2){
printf("Input error, exit...\n");
return 0;
}
for(i=2;i=n;i++){
for(t=i;t;t/=10)//从低位删除0位,1位...直到只剩1位都是素数的为超级素数
if(prime(t))
break;
if(!t)
printf("%d ",i);
}
printf("\n");
return 0;
}
运行样例如下:
#include stdio.h
int is_prime(int x)
{
int i;
for(i=2;i*i=x;i++)
if(x%i==0)
return 0;
return 1;
}
int main()
{
int n,flag=0,i;
scanf("%d",n);
for(i=2;i*i=n;i++)
{
if(is_prime(i) is_prime(n-i))
{
flag=1;
printf("%d %d\n",i,n-i);
}
}
if(flag==0)
printf("No answer\n");
return 0;
}
/判断是不是素数
#includestdio.h
int prime(int a);//函数声明
int main()
{
int n,i;
scanf("%d",n);
if(prime(n)==1) //return返回值1
printf("prime");
else
printf("not prime") ;
}
int prime(int a)
{
int i;
for(i=2;ia;i++)
if(a%i==0)
return 0;//a%i==0不成立
else
return 1;//a%i==0成立
}
扩展资料:
素数的算法
1、素数:除了1和本身外无法被其他自然数整除的数,叫做素数,也称质数,如:2,3,5,7一系列。
2、合数:比1大但不是素数的数称为合数,如:8,9,10一系列。
3、特殊的数字:1和0既不是素数也不是合数。
4、算法: 1确定性算法 2随机性算法 3Eratosthenes算法。
1、首先需要打开vs软件工程,准备好一个空白的C语言文件,引入头文件,主函数中暂时没有内容:
2、这里开始编写代码,这里判断素数需要用到平方根,所以要在头文件中引入math库,然后编写判断素数的函数,函数有唯一的参数n,代表素数。判断的依据是素数n只要不能被 2 到根号下n之 间任一整数整除,则n必定是素数,最后在主函数中调用判断素数的函数即可:
3、最后,编译运行程序,在弹出的命令行中输入17这个素数,程序的打印结果是17是素数,证明了程序的正确性。以上就是用C语言判断素数的流程:
#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,i;
printf("输入一个正整数: ");
scanf("%d",n);
for(i=2;i=n;i++)
{
if(isPrime(i)) //调用函数,如果该数为素数,则输出
printf("%d ",i);
}
printf("\n");
return 0;
}
示例运行结果:
输入一个正整数: 50
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47