题目描述:
将一个正整数n分解为两个正整数之和,其中一个能被3整除,另一个能被7整除。问有几种分解的不同方案,顺序对调后一样算同一种方案,如n=10的时候,3 7与7 3不算两种方案。
输入格式:
一个正整数(n<=10000)
输出格式:
若干对分解出来的数,最后一行一个整数,表示分解出来的方案总数。
每对分解出来的两个数,前一个数是7的倍数,后一个数是3的倍数。
样例输入:
126
样例输出:
21 105 42 84 63 63 3
提示:
分解总的方案是:
第1个数 第2个数
21 105
42 84
63 63
84 42
105 21
不同的总方案是3种。
时间限制: 1000ms
空间限制: 256MB
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,s=0;
cin>>a;
for(int i=1;i<a;i++){
if(i%7==0&&(a-i)%3==0){
if((i>a/2)&&(i%3==0&&(a-i)%7==0)){
continue;
}
s++;
cout<<i<<" "<<a-i<<endl;
}
}
cout<<s;
return 0;
}