用C语言写一个程序,实现输入一个正整数,求其因子的个数。
时间: 2023-02-18 11:37:14 浏览: 156
#include <stdio.h>
int main()
{
int n, i, count = 0;
printf("请输入一个正整数:");
scanf("%d",&n);
for(i=1; i<=n; i++)
{
if(n%i == 0)
{
count++;
}
}
printf("%d的因子有%d个。", n, count);
return 0;
}
相关问题
嵌入式C语言linux:服务器使用多线程为客户端提供服务,客户端发送任意一个正整数,服务器端返回此数因子的个数。
这个问题可以回答。以下是伪代码实现:
```c
#include <stdio.h>
int count_factors(int num) {
int count = 0;
for (int i = 1; i <= num; i++) {
if (num % i == 0) {
count++;
}
}
return count;
}
void *handle_client(void *arg) {
int client_socket = *(int *) arg;
while (1) {
int num;
if (recv(client_socket, &num, sizeof(num), 0) <= 0) {
// Error or client closed connection
close(client_socket);
return NULL;
}
int count = count_factors(num);
if (send(client_socket, &count, sizeof(count), 0) <= 0) {
// Error or client closed connection
close(client_socket);
return NULL;
}
}
}
int main() {
// Create server socket and bind to port
// Listen for incoming connections
while (1) {
int client_socket = accept(listening_socket, NULL, NULL);
if (client_socket < 0) {
// Error accepting connection
continue;
}
pthread_t thread_id;
pthread_create(&thread_id, NULL, handle_client, &client_socket);
pthread_detach(thread_id);
}
// Close listening socket
return 0;
}
```
输入正整数n,输出n以内的全部素数,并输出n以内所有素数个数 用c语言
以下是一个简单的 C 语言程序,可以输出给定正整数n以内的所有素数,并统计素数的个数:
```c
#include <stdio.h>
int main() {
int n, i, j, is_prime, count = 0;
printf("请输入一个正整数n:");
scanf("%d", &n);
for (i = 2; i <= n; i++) {
is_prime = 1; // 假设i是素数
for (j = 2; j < i; j++) {
if (i % j == 0) {
is_prime = 0; // i不是素数
break;
}
}
if (is_prime) {
printf("%d ", i);
count++;
}
}
printf("\n%d以内的素数个数为:%d\n", n, count);
return 0;
}
```
程序中,我们首先读入一个正整数n,然后用两层循环依次检查2至n之间的每个整数是否是素数。对于每个整数i,我们假设它是素数(即is_prime=1),然后从2开始枚举到i-1,检查是否存在能够整除i的因子。如果存在,说明i不是素数,将is_prime置为0,并退出内层循环。如果内层循环结束后is_prime仍然为1,说明i是素数,输出它,并将素数个数加1。最后输出n以内的素数个数。