编写一个判断数n是否是素数的函数(c语言)

编写一个判断数n是否是素数的函数(如果是素数,返回为1;否则返回0),然后编写程序通过调用该函数,将整数80分解成两个素数之和。

判断一个数是否素数的函数可以这样写:

int chk(int x)
{
ok=1;
for (i=2;i<x && 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);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-01-01
判断一个数是否素数的函数可以这样写:
int
chk(int
x)
{
ok=1;
for
(i=2;i<x
&&
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);
}
第2个回答  2009-05-14
这样.

#include<stdio.h>

// 可逆素数就是该数及其反数均为素数
int IsPrime(int i);
int GetFanShu(int n);

int main(int argc, char *argv[])
{
int m, n;
do
{
printf("请输入一个自然数:");
scanf("%d", &m);
}while(m<2);

n = GetFanShu(m);
if( IsPrime(m) && IsPrime(n) )
printf("数字%d为可逆素数!\n", m);
else
printf("数字%d不是可逆素数!\n", m);

return 0;
}

int IsPrime(int iNum)
{
int k;
for(k=2; k<iNum/2; k++)
{
if( iNum%k==0 )
return 0;
}

//printf("数字%d为素数!\n", iNum);
return 1;
}

int GetFanShu(int iNum)
{
int i=0, tmp=iNum;
while(iNum>0)
{
i = i*10 + iNum%10;
iNum = iNum/10;
}

//printf("自然数%d的反序数为:%d\n", tmp, i);

return i;
}
第3个回答  2020-01-31
判断一个数是否素数的函数可以这样写:
intchk(intx)
{
ok=1;
for(i=2;i<x&&ok==1;i++)if(x%i==0)ok=0;
returnok;
}
把80撤分为两个素数之和的程序代码可以这样写:
main()
{
inti;
for(i=2;i<=40;i++)if(chk(i)&&chk(80-i))printf("80=%d+%d\n",i,80-i);
}
相似回答