IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 数学 - 质数、约数 -> 正文阅读

[数据结构与算法]数学 - 质数、约数

1620:质因数分解

#include <bits/stdc++.h>
using namespace std;

int main() {
	int n;
	cin >> n;
	
	for (int i = 2; i <= n / i; i ++) {
		if (n % i == 0) {
			cout << n / i;
			break;
		}
	}

	return 0;
}

1621:轻拍牛头

  • O(n * sqrt(a[i]))
#include <bits/stdc++.h>
using namespace std;

const int N = 1e5 + 10, M = 1e6 + 10;
int n, a[N], cnt[M];

int main() {
	scanf("%d", &n);
	for (int i = 1; i <= n; i ++) {
		scanf("%d", &a[i]);
		cnt[a[i]] ++;
	}
	
	for (int i = 1; i <= n; i ++) {
		int t = sqrt(a[i]), ans = 0;		
		for (int j = 1; j <= t; j ++) {
			if (a[i] % j == 0) {
				ans += cnt[j] + cnt[a[i] / j];
			}
		}
		if (a[i] == t * t) ans -= cnt[t];
		printf("%d\n", ans - 1);
	}

	return 0;
}
  • O(M * lnM)
#include <bits/stdc++.h>
using namespace std;

const int N = 1e5 + 10, M = 1e6 + 10;
int n, a[N], b[M], cnt[M];

int main() {
	scanf("%d", &n);
	for (int i = 1; i <= n; i ++) {
		scanf("%d", &a[i]);
		cnt[a[i]] ++;
	}
	
	for (int i = 1; i <= 1e6; i ++) {
		if (!cnt[i]) continue;
		
		for (int j = i; j <= 1e6; j += i) {
			b[j] += cnt[i];
		}
	}

	for (int i = 1; i <= n; i ++) {
		printf("%d\n", b[a[i]] - 1);
	}

	return 0;
}

1622:Goldbach’s Conjecture

#include <bits/stdc++.h>
using namespace std;

const int N = 1e6;
int n, a[N + 10];
int m, p[N + 10];	//m个质数

int main() {
	for (int i = 2; i <= N; i ++) {
		if (!a[i]) {
			p[++ m] = i;
			for (int j = 2; i * j <= N; j ++) {
				a[i * j] = 1;
			}
		}
	}
	
	while (scanf("%d", &n)) {
		if (n == 0) break;
		
		//小于1百万的偶数都满足猜想 
		for (int i = 1; i <= m; i ++) {
			if (!a[n - p[i]]) {
				printf("%d = %d + %d\n", n, p[i], n - p[i]);
				break;
			}
		}
	}

	return 0;
}

1623:Sherlock and His Girlfriend

#include <bits/stdc++.h>
using namespace std;

int n;
bool a[100009];

int main() {
	cin >> n;
	
	if (n <= 2) {
		printf("1\n");
	}
	else {
		printf("2\n");
	}
		
	for (int i = 2; i <= n + 1; i ++) {
		if (!a[i]) {
			for (int j = 2 * i; j <= n + 1; j += i) {
				a[j] = true;
			}
		}
	}
	
	for (int i = 2; i <= n + 1; i ++) {
		if (!a[i]) printf("1 ");
		else printf("2 ");
	}		
	
	return 0;
}

1624:樱花

#include <bits/stdc++.h>
using namespace std;

const int MOD = 1e9 + 7;
int n, a[1000009];

void f(int x) {
	for (int i = 2; i * i <= x; i ++) {
		while (x % i == 0) {
			a[i] ++;
			x /= i;
		}
	}
	if (x > 1) a[x] ++;
}

int main() {
	cin >> n;
	for (int i = 2; i <= n; i ++) {
		f(i);
	}
	
	long long res = 1;
	for (int i = 2; i <= n; i ++) {
		if (a[i]) {
			res = res * (2 * a[i] + 1) % MOD;
		}
	}
	cout << res;

	return 0;
}
#include <bits/stdc++.h>
using namespace std;

const int N = 1e6 + 9, MOD = 1e9 + 7;
int n, a[N];
int m, p[N];	//m个质数 

int main() {
	cin >> n;	
	for (int i = 2; i <= n; i ++) {
		if (!a[i]) {
			p[++ m] = i;
			
			for (int j = i; j <= n / i; j ++) {
				a[i * j] = 1;
			}
		}
	}

	long long res = 1;
	for (int i = 1; i <= m; i ++) {
		long long t = p[i];
		int cnt = 0;
		while (t <= n) {
			cnt += n / t;
			t *= p[i];
		}
		 
		res = res * (2 * cnt + 1) % MOD;
	}
	cout << res;

	return 0;
}

1619:Prime Distance

#include <bits/stdc++.h>
#define LL long long
using namespace std;

const int N = 1e6 + 10;
int a[N], p[N], n;

int main() {
	for (int i = 2; i < 50000; i ++) {
		if (!a[i]) p[++ n] = i;
		
		for (int j = 1; p[j] * i < 50000; j ++)	{
			a[p[j] * i] = 1;	//合数 
			if (i % p[j] == 0)  break;
		}			
	}	
	 
	LL l, r;
	while (cin >> l >> r) {
		memset(a, 0, sizeof(a));
		if (l == 1) a[1 - l] = 1;					//1不是质数
		
		for (int i = 1; i <= n; i ++) {
			LL x = (l + p[i] - 1) / p[i] * p[i];	//上取整 
			if (x == p[i]) x += p[i];
	
			for (LL j = x; j <= r; j += p[i]) {
				a[j - l] = 1;						//j是合数 
			}
		}
			
		LL prime, cnt = 0, x, y, maxx = 0, minn = 1e6;
		bool flag = true;
		for (LL j = l; j <= r; j ++) {
			if (!cnt && !a[j - l] ) {
				prime = j;
				cnt ++;
			}
			else if (cnt && !a[j - l]) {
				if (j - prime > maxx) {
					maxx = j - prime;
					x = j;
				}
				if (j - prime < minn) {
					minn = j - prime;
					y = j; 
				} 
				prime = j;
				cnt ++;
			}
		}
		
		if (cnt < 2) {
			puts("There are no adjacent primes.");
		}
		else {
			printf("%d,%d are closest, %d,%d are most distant.\n", y - minn, y, x - maxx, x);
		}	
	}

    return 0;
}
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-04-24 09:40:34  更:2022-04-24 09:44:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:57:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码