真恶心,真没想到最后是打表才能过。。。
//============================================================================
// Name : 2191.cpp
// Author :
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
//int n, num, tag;
//long long t, k;
//int a[100];
//int isprime(int m){
// for(int i = 2;i <= sqrt(m);i++){
// if(m%i == 0) return 0;
// }
// return 1;
//}
//
//
//int main() {
// freopen("a.txt", "r", stdin);
// for(int i = 2;i <= 63;i++){
// if(isprime(i)){
// a[++num] = i;
// }
// }
// while(scanf("%d", &n)!=EOF){
// for(int i = 1;a[i] <= n;i++){
// tag = 0;
// k = pow(2, a[i])-1;
// t = k;
// for(long long j = 2;j <= sqrt(k);j++){
// while(t%j == 0){
// tag = 1;
// if(t != j) printf("%lld * ", j);
// else printf("%lld", j);
// t /= j;
// }
//
// }
// if(tag == 1&&t!=1) printf("%lld", t);
// if(tag == 1) printf(" = %lld = ( 2 ^ %d ) - 1\n", k, a[i]);
// }
// }
// return 0;
//}
char s[9][100] = {"23 * 89 = 2047 = ( 2 ^ 11 ) - 1"
,"47 * 178481 = 8388607 = ( 2 ^ 23 ) - 1"
,"233 * 1103 * 2089 = 536870911 = ( 2 ^ 29 ) - 1"
,"223 * 616318177 = 137438953471 = ( 2 ^ 37 ) - 1"
,"13367 * 164511353 = 2199023255551 = ( 2 ^ 41 ) - 1"
,"431 * 9719 * 2099863 = 8796093022207 = ( 2 ^ 43 ) - 1"
,"2351 * 4513 * 13264529 = 140737488355327 = ( 2 ^ 47 ) - 1"
,"6361 * 69431 * 20394401 = 9007199254740991 = ( 2 ^ 53 ) - 1"
,"179951 * 3203431780337 = 576460752303423487 = ( 2 ^ 59 ) - 1"};
int n, t;
int main(){
while(scanf("%d", &n)!=EOF){
if(n < 11) t = 0;
else if(n >= 11&&n < 23) t = 1;
else if(n >= 23&&n < 29) t = 2;
else if(n >= 29&&n < 37) t = 3;
else if(n >= 37&&n < 41) t = 4;
else if(n >= 41&&n < 43) t = 5;
else if(n >= 43&&n < 47) t = 6;
else if(n >= 47&&n < 53) t = 7;
else if(n >= 53&&n < 59) t = 8;
else if(n >= 59) t = 9;
for(int i = 0;i < t;i++){
printf("%s\n", s[i]);
}
}
return 0;
}