验证歌德巴赫猜想对2000以内的正偶数成立 及 将一个正整数分解质因数

来源:互联网 发布:八爪鱼采集器mac版 编辑:程序博客网 时间:2024/04/28 05:40

验证歌德巴赫猜想对2000以内的正偶数成立

#include<iostream>using namespace std;int Zhi(int a){for(int i=2;i<=(a/2);i++){if((a%i)==0)return 0;}return 1;}int main(){unsigned int a;int b,c;int sum=0;    for(a=1;a<=2000;a++)    {    if(a%2==0)    {    int flag=0;      for(b=1;b<=a&&!flag;b++)  {  for(c=1;c<=a&&!flag;c++)  {  if(Zhi(b)&&Zhi(c)&&(a==b+c))  {  sum++;  flag=1;}}  }}}if(sum==1000)cout<<"正确"<<endl;elsecout<<"不正确"<<endl;return 0;}
这个之前没有想到插旗,及时跳出循环,因此导致重复以及运算麻烦。


在之后又做了一道题

#include<iostream>using namespace std;int Su(int a)//判断素数的函数 {for(int i=2;i<=(a/2);i++)    {    if(a%i==0)    return 0;}return 1;}int Fen(int a)//分解一个数 {    for(int i=2;i<=(a/2);i++){if(a%i==0)return a/i;}return 0;}int main(){int a;cin>>a;int flag=0;//为了方便即使跳出循环插旗 for (int i=1;i<=(a/2)&&!flag;i++){if(a%i==0){int store;store=a/i;if(Su(store))cout<<i<<"X"<<store<<endl;//质数等于1乘以它本身 else{for(;!Su(store);)//Store若不是素数 {cout<<store/Fen(store)<<"X";//Fen出来的是较大的因数 store=Fen(store);//将较大的因数赋值给store if(Su(store))//判断store是否质因数,若是,输出最后一个因数,跳出循环 {cout<<store<<endl;flag=1;//插旗 break;}}}}}return 0;}

这道题就插旗了,感觉非常好用。


0 0
原创粉丝点击