专业网站建设出售/黑龙江头条今日新闻
最近一直做有关质数的题,用的都是函数调用的方法,也算是把函数调用弄清楚了。
就是其实主函数就一个,是下面的main函数,我现在要对输入的数据进行判定,所以我又定义了一个函数,这个函数的作用就是在下面函数中对输入数据进行判断,输入的数据在下面的主函数中,我对输入数据判定时便对上面的函数进行调用,用上面新定义的函数对输入的数据进行判断。
先来看一个简单的质数题。
1.输入一个正整数 n,判断 n 是否是质数,若 n是质数,输出"Yes",否则输出"No"。
代码:
#include<iostream>
#include<cmath>
using namespace std;
bool panduanzs(int a) //新定义好的函数
{if(a==1) return 0;else{for(int i=2;i<=sqrt(a*1.0);i++) //如果除一和它本身外还有其他因数,则不是质数返回值为0{ if(a%i==0) return 0;}return 1;}
}
int main()
{ int n;cin>>n;if(panduanzs(n)) //对上面函数进行调用,对输入数据做以上函数的运算{cout<<"Yes";}else cout<<"No";return 0;
}
2.给出 n个正整数,任取两个数,有多少种选法使得选出的两个数互质。
样例输入
7
3 5 7 9 11 13 15
样例输出
17
#include<iostream>
using namespace std;
bool panduanhz(int x,int y) //定义新的函数
{ //用辗转相除法判断两个数是否互质。(互质就是两个正整数只有一个公因数1)int t;while(x>0){t=y%x;y=x;x=t;}if(y==1) return 1;else return 0;
}
int main()
{int n;cin>>n;int a[600],b[600];int sum=0;for(int i=0;i<n;i++){cin>>a[i];b[i]=a[i]; //将数组进行拷贝}for(int j=0;j<n;j++){for(int k=j+1;k<n;k++){if(panduanhz(a[j],b[k])){sum++; //如果互质就加1}}}cout<<sum;return 0;
}