质数的和与积(信息学奥赛一本通-T1405)
生活随笔
收集整理的這篇文章主要介紹了
质数的和与积(信息学奥赛一本通-T1405)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目描述】
兩個質數的和是S,它們的積最大是多少?
【輸入】
一個不大于10000的正整數S,為兩個質數的和。
【輸出】
一個整數,為兩個質數的最大乘積。數據保證有解。
【輸入樣例】
50
【輸出樣例】
589
【源程序】
#include<iostream> #include<cmath> using namespace std; bool judge(int x);int main() {int s;int i;cin>>s;//輸入正整數sfor(i=s/2; i>=2; i--) //和為定值的兩個數,越接近,數越大,因此從中間拆分if(judge(i)&&judge(s-i))//判斷拆分的兩個數是否為素數{cout<<i*(s-i)<<endl;//若是,輸出兩數積break;//終止循環}return 0; } bool judge(int x)//判斷素數 {int i;if(x==2) return true;for(i=2; i<=sqrt(x); i++)if(x%i==0)return false;return true; }?
總結
以上是生活随笔為你收集整理的质数的和与积(信息学奥赛一本通-T1405)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 绝对素数(信息学奥赛一本通-T1153)
- 下一篇: 不与最大数相同的数字之和(信息学奥赛一本