(2,2) (2,4) (4,2) (3,3) (5,5)
Source
#include<iostream> using namespace std; int a[100010]={0}; int ss(int x) { int i,j; if (a[x]){ return 1; } for (i=2; i<x; i++) { if (x%i==0) break; } if (x==i) { a[x] = 1; return 1; } return 0; } int gcd(int x,int y) { int t; if (x<y) { t=x; x=y; y=t; } while (y) { t = x%y; x=y; y=t; } return x; } int main() { int n,i,j,cnt=0; cin>>n; for (i=2; i<=n; i++) { if (ss(i)) { cnt++; } for (j=2; j<=n; j++) { if (i==j) { continue; } if (ss(gcd(i,j))) { cnt++; } } } cout<<cnt<<endl; return 0; }