Happy Winter Holiday (Simple Number Theory)

Isomorphic number

#include <iostream>
#include <cstdio>
using namespace std;

int main() {
    
    
	int n;
	cin >> n;
	
	for (int i = 1; i <= n; i ++) {
    
    
		int s = i, t = i * i;
		
		bool flag = true;
		while (s) {
    
    
			if (s%10 != t%10) {
    
    
				flag = false;
				break;
			}
			s /= 10, t /= 10;
		}
		
		if (flag) cout << i << ' ';
	}
	
	return 0;
}

Decompose prime factors

#include <iostream>
#include <cstdio>
using namespace std;

int main() {
    
    
	int n;
	cin >> n;
	
	bool flag = true;
	while (n != 1) {
    
    
		for (int i = 2; i <= n; i ++) {
    
    
			if (n%i == 0) {
    
    
				if (flag) {
    
    
					printf("%d=%d", n, i);
					flag = false;
				}
				else {
    
    
					printf("*%d", i);
				}
				n /= i;
				break;
			}
		}		
	}
	
	return 0;
}

Prime number

#include <iostream>
#include <cstdio>
using namespace std;

bool isPrime(int x) {
    
    
	if (x < 2) return false;
	
	for (int i = 2; i <= x/i; i ++) {
    
    
		if (x%i == 0) return false;
	}
	
	return true;
}

int main() {
    
    
	int n;
	cin >> n;
	
	int t = 0, base = 1;
	while (n) {
    
    
		t += n%10*base;
		base *= 10;
		n /= 10;
		
		if (!isPrime(t)) {
    
    
			cout << "no";
			return 0;
		}		
	}
	
	cout << "yes";
	
	return 0;
}

Beautiful twins

#include <iostream>
#include <cstdio>
using namespace std;

bool f(int x) {
    
    
	while (x != 1) {
    
    
		int t = x;
		for (int i = 2; i <= x/i; i ++) {
    
    
			int cnt = 0;
			while (x%i==0) {
    
    
				x /= i;
				cnt ++;
			}
			
			if (cnt == 1) return false;
		}
		if (x == t) return false;
	}
	
	return true;	
}

int main() {
    
    
	int m, n;
	cin >> m >> n;
	if (m > n) swap(m, n);
	
	bool flag = true;
	for (int i = m; i < n; i ++) {
    
    
		if (f(i) && f(i+1)) {
    
    
			cout << i << ' ' << i + 1 << endl;
			flag = false;
		}
	}
	
	if (flag) cout << "no find" << endl;
	
	return 0;
}

Ugly number

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;

long long a, b, c, d;
int ans[10000], cnt;

int main() {
    
    
	for (int i = 0; i <= 31; i ++) {
    
    
		a = pow(2, i);
		for (int j = 0; j <= 31; j ++) {
    
    
			b = pow(3, j);
			if (a*b > 2e9) break;
			for (int k = 0; k <= 31; k ++) {
    
    
				c = pow(5, k);
				if (a*b*c > 2e9) break;
				for (int l = 0; l <= 31; l ++) {
    
    
					d = pow(7, l);
					if (a*b*c*d > 2e9) break;
					ans[++cnt] = a*b*c*d;
				}
			}
		}
	}
	
	sort(ans+1, ans+1+cnt);
	
	int x;
	while (cin >> x) {
    
    
		if (x==0) break;
		
		if (x%100==11 || x%100==12 || x%100==13) printf("The %dth humble number is %d.\n", x, ans[x]);
		else if (x%10==1) printf("The %dst humble number is %d.\n", x, ans[x]);
		else if (x%10==2) printf("The %dnd humble number is %d.\n", x, ans[x]);
		else if (x%10==3) printf("The %drd humble number is %d.\n", x, ans[x]);
		else printf("The %dth humble number is %d.\n", x, ans[x]);
	}
	
	return 0;
}

Guess you like

Origin blog.csdn.net/davidliule/article/details/113761024