给出c++代码,对于 q 个询问,每个询问提供一个正整数 n,请求出有多少个不超过 n 的正整数 i,满足 n % i 是质数?
时间: 2024-10-21 21:07:06 浏览: 15
c代码-13.计算并输出给定整数 n 的所有因子(不包括 1 与自身)之和。规定 n 的值不大于 1000。例如,从键盘给 n 输入的值为 856,则输出为sum=763。
5星 · 资源好评率100%
在 C++ 中,你可以使用一个函数来检查一个数是否为质数,然后遍历所有不超过给定数字 n 的数,看它们除以当前数余数是否为质数。这里是一个简单的示例代码:
```cpp
#include <iostream>
#include <vector>
// 判断一个数是否为质数
bool isPrime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; ++i) {
if (num % i == 0)
return false;
}
return true;
}
int countPrimesDivisors(int n) {
int count = 0;
for (int i = 1; i <= n; ++i) {
if (isPrime(n % i))
count++;
}
return count;
}
int main() {
int q;
std::cin >> q;
// 处理 q 个查询
for (int qi = 0; qi < q; ++qi) {
int n;
std::cin >> n;
int result = countPrimesDivisors(n);
std::cout << "对于 n=" << n << ", 有 " << result << " 个满足条件的正整数。\n";
}
return 0;
}
```
这个程序首先读取查询的数量 q,然后对每一个输入的 n,都会计算小于等于 n 的数中,使得 n 能够被整除并产生质数余数的数的数量。
阅读全文