日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【CodeForces - 472A】Design Tutorial: Learn from Math (tricks,思维,数论,打表)

發(fā)布時(shí)間:2023/12/10 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【CodeForces - 472A】Design Tutorial: Learn from Math (tricks,思维,数论,打表) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題干:

One way to create a task is to learn from math. You can generate some random math statement or modify some theorems to get something new and build a new task from that.

For example, there is a statement called the "Goldbach's conjecture". It says: "each even number no less than four can be expressed as the sum of two primes". Let's modify it. How about a statement like that: "each integer no less than 12 can be expressed as the sum of two composite numbers." Not like the Goldbach's conjecture, I can prove this theorem.

You are given an integer?n?no less than 12, express it as a sum of two composite numbers.

Input

The only line contains an integer?n?(12?≤?n?≤?106).

Output

Output two composite integers?x?and?y?(1?<?x,?y?<?n)?such that?x?+?y?=?n. If there are multiple solutions, you can output any of them.

Examples

Input

12

Output

4 8

Input

15

Output

6 9

Input

23

Output

8 15

Input

1000000

Output

500000 500000

Note

In the first example, 12 = 4 + 8 and both 4, 8 are composite numbers. You can output "6 6" or "8 4" as well.

In the second example, 15 = 6 + 9. Note that you can't output "1 14" because 1 is not a composite number.

題目大意:

? 給你一個(gè)不小于12的整數(shù),讓你分解成兩個(gè)合數(shù)。

解題報(bào)告:

? 看似不顯然,,但是其實(shí)很顯然啊,如果是偶數(shù)那就輸出4和n-4? 或者6 和n-6這樣的都行。如果是奇數(shù)那就輸出9 和 n-9。做題的時(shí)候傻了吧唧的寫了個(gè)素?cái)?shù)打表。得虧數(shù)據(jù)給的小是1e6,,要是1e18這樣的還真不好辦了(不過要是給那樣的數(shù)據(jù)也就回去想規(guī)律了2333)。

AC代碼:

#include<cstdio> #include<iostream> #include<algorithm> #include<queue> #include<map> #include<vector> #include<set> #include<string> #include<cmath> #include<cstring> #define ll long long #define pb push_back #define pm make_pair #define fi first #define se second using namespace std; const int MAX = 2e6 + 5; bool is[MAX]; void prime() {memset(is,1,sizeof is);is[0]=is[1]=0;for(int i = 2; i<=1000000; i++) {if(is[i]) {for(int j = i+i; j<=1000000; j+=i) is[j]=0; }} } int main() {prime();int n;cin>>n;for(int i = 3; i*2<=n; i++) {if(is[i]==0 && is[n-i] == 0) {printf("%d %d\n",i,n-i);break;}}return 0 ;}

?

總結(jié)

以上是生活随笔為你收集整理的【CodeForces - 472A】Design Tutorial: Learn from Math (tricks,思维,数论,打表)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。