#include<iostream>
#include<math.h>
using namespace std;
int main(){
// 配列matrixは、a^bの表
// 配列checkは、nの何乗未満を調べるのかを保存
int matrix[101][101] = {0};
int check[11] = {0,0,7,5,4,3,3,3,3,3,3};
// 重なる数字のところに「1」を代入していく
for(int a = 2; a < 11; a++){
for(int b = 4; b < 101; b++){
// bの約数を求める
int root = sqrt((double)b) + 1;
for(int n = 2; n < root; n++){
if(b % n == 0){
// 調べるべき累乗の数かどうかの判断
// 範囲内なら「1」を格納
if(n < check[a]) {matrix[(int)pow((double)a,(double)n)][b/n] = 1;}
if(b/n < check[a]) {matrix[(int)pow((double)a,(double)b/n)][n] = 1;}
}
}
}
}
// 異なる数字を数える
int count = 0;
for(int a = 2; a < 101; a++){
for(int b = 2; b < 101; b++){
if(matrix[a][b] == 0) {count++;}
}
}
// 異なる数字の数を出力する
cout << count << endl;
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPG1hdGguaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCl7CgoJLy8g6YWN5YiXbWF0cml444Gv44CBYV5i44Gu6KGoCgkvLyDphY3liJdjaGVja+OBr+OAgW7jga7kvZXkuZfmnKrmuoDjgpLoqr/jgbnjgovjga7jgYvjgpLkv53lrZgKCWludCBtYXRyaXhbMTAxXVsxMDFdID0gezB9OwoJaW50IGNoZWNrWzExXSA9IHswLDAsNyw1LDQsMywzLDMsMywzLDN9OwoKCS8vIOmHjeOBquOCi+aVsOWtl+OBruOBqOOBk+OCjeOBq+OAjDHjgI3jgpLku6PlhaXjgZfjgabjgYTjgY8KCWZvcihpbnQgYSA9IDI7IGEgPCAxMTsgYSsrKXsKCQlmb3IoaW50IGIgPSA0OyBiIDwgMTAxOyBiKyspewoKCQkJLy8gYuOBrue0hOaVsOOCkuaxguOCgeOCiwoJCQlpbnQgcm9vdCA9IHNxcnQoKGRvdWJsZSliKSArIDE7CgkJCWZvcihpbnQgbiA9IDI7IG4gPCByb290OyBuKyspewoJCQkJaWYoYiAlIG4gPT0gMCl7CgoJCQkJCS8vIOiqv+OBueOCi+OBueOBjee0r+S5l+OBruaVsOOBi+OBqeOBhuOBi+OBruWIpOaWrQoJCQkJCS8vIOevhOWbsuWGheOBquOCieOAjDHjgI3jgpLmoLzntI0KCQkJCQlpZihuIDwgY2hlY2tbYV0pIHttYXRyaXhbKGludClwb3coKGRvdWJsZSlhLChkb3VibGUpbildW2Ivbl0gPSAxO30KCQkJCQlpZihiL24gPCBjaGVja1thXSkge21hdHJpeFsoaW50KXBvdygoZG91YmxlKWEsKGRvdWJsZSliL24pXVtuXSA9IDE7fQoJCQkJfQoJCQl9CgkJfQoJfQoKCS8vIOeVsOOBquOCi+aVsOWtl+OCkuaVsOOBiOOCiwoJaW50IGNvdW50ID0gMDsKCWZvcihpbnQgYSA9IDI7IGEgPCAxMDE7IGErKyl7CgkJZm9yKGludCBiID0gMjsgYiA8IDEwMTsgYisrKXsKCQkJaWYobWF0cml4W2FdW2JdID09IDApIHtjb3VudCsrO30KCQl9Cgl9CgoJLy8g55Ww44Gq44KL5pWw5a2X44Gu5pWw44KS5Ye65Yqb44GZ44KLCgljb3V0IDw8IGNvdW50IDw8IGVuZGw7CglyZXR1cm4gMDsKfQ==