作业5

/*
//数段素数
//输入一个数段(输入两个整数,代表起始和结束的整数值),输出这个数段内的全部素数
#include <iostream>
using namespace std;
int main()
{
int min, max, i, j;
cin >> min >> max;
for (i = min + 1; i <= max; i++)
{
for (j = 2; j <= i; j++)if (i % j == 0)break;
if (j >= i)cout << i << " ";
}
return 0;
}
*/

 

 


/*
//第二种
#include <iostream>
#include <cmath>
using namespace std;
bool prime(int m)
{
bool prime; //布尔变量prime记录m是否为素数
int k,i;
prime=true;//先认为m为素数
if (m==1) prime = false;
k=int(sqrt(m)); //用k代表根号m的整数部分
for(i=2;i<=k;i++) //检查m是否能被2~根号m整除
if(m%i==0) //如果能整除,表示m不是素数
{ prime=false; //使prime变为假
break; //终止执行本层循环
}
return prime;
}
int main( )
{
int m;
int begin,end;
cin>>begin>>end;
for(m=begin; m<=end; m=m+1)
{
if (prime(m))//if (prime==true),如果m为素数
{
cout<<m<<" "; //输出素数m
}
}
cout<<endl;//最后执行一次换行
return 0;
}
*/

 

 

 


/*
//哥德巴赫猜想
//写一个函数验证哥德巴赫猜想:一个不小于6的偶数可以表示为两个素数之和,如6 = 3 + 3, 8 = 3 + 5, 10 = 3 + 7···
//输入一个不小于6的偶数n,然后调用函数godbaha实现。在godbaha函数中再调用prime函数(prime函数的作用是判别一个数是否为素数)在godbaha函数中输出以下形式结果
样例输入
Please input a even number more than six :
34
样例输出
34 = 3 + 31
#include<iostream>
#include<cmath>
using namespace std;
bool prime(int n)
{
int i;
bool b;
b = true;
for (i = 6; i <= int(sqrt(n)); i++)
{
if (n % i == 0)b = false;
break;
}
return b;
}

void godbaha(int n)
{
int i;
for (i = 2; i < n / 9; i++)if (prime(i) == true && prime(n - i) == true);
cout << n << "=" << i << "+" << n - i;
}

int main()
{
int n, i;
cout << "Please input a even number more than six:" << endl;
cin >> n;
godbaha(n);
return 0;
}
*/

 

 


/*
//第二种
#include <iostream>
using namespace std;
#include <cmath>

void godbaha(int n);//哥德巴赫猜想函数
bool prime(int m);//判断素数函数
int main()
{
int x;
do{
cout<<"Please input a even number more than six:"<<endl;
cin>>x;
}while(x%2!=0||x<6);
godbaha(x);
return 0;
}
bool prime(int n)
{
int i;
for(i=2;i<n&&n%i!=0;i++);
return n==i?true:false;
}

void godbaha(int n)
{
int i;
for(i=3;i<=n/2;i=i+2)
{
if (prime(i)&&prime(n-i))
break;
}
cout<<n<<"="<<i<<"+"<<n-i<<endl;
}
*/

 

 

 

 

/*
//一维数组和二维数组应用
//输入一维数组a数组元素,将一维整型数组a的12个元素保存到3×4的二维数组b中
//按三行四列输出二维数组b中各元素的值。并隔一行输出二维数组b中最大的元素值的行下标和列下标(当有重复最大值时,输出最后一个最大值的下标)
样例输入
3 5 6 7 4 6 34 67 25 78 45 78
样例输出
3 5 6 7
4 6 34 67
25 78 45 78

78 2 3
#include<iostream>
using namespace std;
int main()
{
int a[12], b[3][4], i, x, y, mx = 0, my = 0, max = 0;
for (i = 0; i < 12; i++)cin >> a[i];
i = 0;
for (y = 0; y < 3; y++)for (x = 0; x < 4; x++)b[y][x] = a[i++];
for (y = 0; y < 3; y++)
{
for (x = 0; x < 4; x++)cout << b[y][x] << " ";
cout << endl;
}
for (y = 0; y < 3; y++)
{
for (x = 0; x < 4; x++)
if (b[y][x]>max)
{
max = b[y][x];
mx = x;
my = y;
}
}
mx=mx+1;
my=my+1;
cout << endl << max << " " << mx << " " << my << endl;
return 0;
}
*/

 

 

 

/*
//答案
#include <iostream>
using namespace std;
int main()
{
int a[12];
int b[3][4],i,j,n=0;
int max,mi,mj;
for(i=0;i<12;i++)
cin>>a[i];

//第一种实现
/*for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
b[i][j]=a[n++];
cout<<b[i][j]<<" ";
}
cout<<endl;
}*/


//第二种实现
/*for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
b[i][j]=a[i*4+j];
cout<<b[i][j]<<" ";
}
cout<<endl;
}*/


//第三种实现
/*
for(i=0;i<12;i++)
{
cin>>a[i];
b[i/4][i%4]=a[i];
}
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
cout<<b[i][j]<<" ";
}
cout<<endl;
}*/

max = b[0][0], mi = 0, mj = 0;
for (i = 0; i<3; i++)
for (j = 0; j<4; j++)
if (max <= b[i][j])
{
max = b[i][j];
mi = i;
mj = j;
}
cout << endl;
cout << max << " " << mi << " " << mj << endl;
return 0;
}
*/

posted @ 2023-03-21 22:41  BKYNEKO  阅读(16)  评论(1)    收藏  举报