‘壹’ c语言 寻找素数对
#include<stdio.h>
#include<string.h>const int MAX=10005;bool b[MAX];int main()
{
int i,j,k,m,f;
//求出10000以内的所有素数。
memset(b,true,sizeof(b));
i=2;
while(i<102)
{
if(b[i])
{
j=i*i;
while(j<MAX)
{
b[j]=false;
j+=i;
}
}
i++;
}
while(scanf("%d",&m)==1)
{
k=m>>1;
i=2;
while(i<=k)
{
if(b[i]&&b[m-i])
f=i;
i++;
}
printf("%d %d\n",f,m-f);
}
return 0;
}
‘贰’ C语言编程验证“哥德巴赫猜想”,任何大于2的偶数都是两个素数之和。
#include<stdio.h>
intisPrime(int);
intmain(){
intn;
for(n=4;n<=100;n+=2){
inti;
for(i=2;i<=n/2;i++)
if(isPrime(i)&&isPrime(n-i)){
printf("%d=%d+%d
",n,i,n-i);
break;return0;}
intisPrime(intn){inti;if(n<2)return0;if(n==2)
return1;
else
for(i=2;i*i<=n;i++)
if(n%i==0)
return0;
return1;
‘叁’ C语言求质数问题
#include<stdio.h>
#include<math.h>
intmain()
{
intm,n,c=0,i,t,j;
scanf("%d%d",&m,&n);
if(m==0&&n==0)//<===========
{
return0;
}
elseif(m>n)
{
t=m,m=n,n=t;
}
//else
for(i=m;i<=n;i++)
{
for(j=2;j*j<=i;j++)//<============
{
if(i%j==0)
break;
}
if(j*j>i)//<==========
{
printf("%d",i);
c++;
if(c==10)
{
printf(" ");
c=0;
}
}
}
return0;
}
‘肆’ 跪求~用C语言编写程序:多项式素数猜想
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[])
{
int i;
int result = 1;
for (i = 1; i <= 40; i++)
{
if (!isPM(i * i - i + 41))
{
result = 0;
break;
}
}
if (result == 1)
printf ("Ture! \n");
else
printf ("False! \n");
return 0;
}
int isPM(int n)
{
int r = 1;
int i;
for (i = 2; i < sqrt(n); i++)
{
if (n % i == 0)
{
r = 0;
break;
}
}
return r;
}
‘伍’ 哥德巴赫猜想!!!! C语言
一)设计思想:<br> <br>1:为了证明一个小于都2000的偶数,能被两个素数相加,首先求出1-2000内的所有素数,以方便相加,我们将保存在一个sushu[2000]数组中备用。<br> <br>2:从键盘输入一个偶数后在核心函数中处理,寻找合适的两个素数。<br> <br>3:输出结果。<br> <br> 二)流程图:<br> <br>(画不出来改成文字了)<br> <br>1:声明所需的变量及数组<br> 2:求出所有2000以内的素数保存在数组中备用。<br> 3:输入一个偶数,并在素数组中寻找合适的两个素数<br> 4:将结果输出<br> <br> 三)难重点及解决方法:<br> 1:2000以内的素数的求出,我们用了两个循环套来使得素数各方面条件都得到满足后保存入数组。<br> <br>2:查找满足的两个素数,为了能查到匹配的两个素数,我们也用了两个循环套来保证一个不漏的找到。<br> <br>四)核心内容:<br> 1:求素数的内容如下:<br> <br> s=ss=0;<br> <br> sushu[0]=2;<br> <br> xiabiao=1;<br> <br> for (int s=3;s<2000;s++)<br> {<br> for (int ss=2;ss<=s;ss++)<br> {<br> if (0==s%ss) break;<br> }<br> <br> if (s==ss) sushu[xiabiao++]=s;<br> }<br> <br>////////////////////////////////////////////////////<br> <br>2:查找匹配的两个素数的内容如下:<br> <br> for (s=0;s<xiabiao-1;s++)<br> {<br> for (ss=s+1;ss<xiabiao;ss++)<br> {<br> <br> <br> if (m_1==sushu[s]+sushu[ss])<br> <br>{ <br> m_2=sushu[s];<br> <br>m_3=sushu[ss];<br> <br>UpdateData(FALSE);<br> <br>return ;<br> }<br> }<br> <br> }<br> <br> 五)程序运行结果截图:
‘陆’ c语言编程填空哥德巴赫猜想
第一空:num%i==0
第二空:isPrime(a)==1或isPrime(a)
第三空:(isPrime(j)==1)&&(isPrime(a-j)==1)
‘柒’ 用C语言验证歌德巴赫猜想(任何充分大的偶数都可以由两个素数之和表示)。
#include<stdio.h> int f(int n) { int i;"请输入一个不小于6的//首先生成质数表,然后双重循环输出2000以内所有偶数的两个质数和的形式
‘捌’ 求c语言题目答案。。。。
#include<stdio.h>
#include<string.h>
int vis[20000005];
int main()
{
int i,j,n;
memset(vis,0,sizeof(vis));
for (i=2;i<=20000000;i++)
if (vis[i]==0)
for (j=2;i*j<=20000000;j++) vis[i*j]=1;
while (scanf("%d",&n)!=EOF)
{
for (i=n+1;;i++)
if (vis[i]==0&&vis[i+2]==0){ printf("%d %d\n",i,i+2); break;}
}
return 0;
}
‘玖’ C语言 哥德巴赫猜想:任意大于等于6的偶数都可以分解为2个质数之和:如6=3+3,8=3+5;10
#include<stdio.h>
intprime(intn)
{
if(n%2==0&&n!=2)return0;
inti=3;
for(;i<n;i+=2)
if(n%i==0)return0;
return1;
}
intmain()
{
intn,j=0;
scanf("%d",&n);
if(n%2==1||n<6)return1;
for(j=2;j<=n/2;j++)
{
if(prime(j)&&prime(n-j))
printf("%d=%d+%d ",n,j,n-j);
}
return0;
}