码迷,mamicode.com
首页 > 其他好文 > 详细

1405 两素数的和与最大积

时间:2020-02-01 10:20:13      阅读:312      评论:0      收藏:0      [点我收藏+]

标签:turn   代码   using   描述   cout   ret   个数   pac   dfs   

这个题首先对S

其中的一个素数进行穷举

当一个满足为素数时

借助和来求另一个素数

再通过判断此素数是否满足

最后

当两个数和确定后,若两个数的绝对值越小

其对应乘积越大

故得出答案

代码如下

 1 ///【题目描述】
 2 //两个质数的和是S,它们的积最大是多少?
 3 
 4 //【输入】
 5 //一个不大于10000的正整数S,为两个质数的和。
 6 
 7 //【输出】
 8 //一个整数,为两个质数的最大乘积。数据保证有解。
 9 
10 //【输入样例】
11 //50
12 //【输出样例】
13 //589
14 
15 #include<iostream>
16 #include<cmath>
17 using namespace std;
18 int dfs(int);
19 int u[1];
20 int S;
21 int main()
22 {
23     cin>>S;
24     cout<<dfs(S);
25 }
26 int dfs(int S)
27 {
28     int l,p,i,q,k,o=10000;
29     for(p=2;p<=S;p++)
30         {int k=0,h=0;
31          for(i=2;i<=sqrt(p);i++)
32             if(p%i==0) k++;
33         if(p==i) continue;
34          if(k==0) {
35          q=S-p;
36          for(i=2;i<=sqrt(q);i++)
37             if(q%i==0) h++;
38          if(h==0) l=abs(p-q);
39          if(l<o) {o=l;u[1]=q;}
40            }
41         }
42         return u[1]*(S-u[1]);
43 }

 

1405 两素数的和与最大积

标签:turn   代码   using   描述   cout   ret   个数   pac   dfs   

原文地址:https://www.cnblogs.com/-Iris-/p/12247441.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!