30,338
社区成员
发帖
与我相关
我的任务
分享
输入:16 2
//代表将16 转换成2进制数
代码:
#include<stdio.h>
char d[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
void fun(int n, int k) {
int r = 0;
r = n % k;
n = n / k;
if (n != 0) fun(n, k);
printf("%c", d[r]);
}
int main() {
int l, m;
while (scanf("%d%d", &l, &m) != EOF) {
fun(l, m);
}
return 0;
}
运行:
直接上代码:
//分解质因数
#include<stdio.h>
#include<math.h>
int fun(int n) {
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) return 1;
}
return 0;
}
void funl(int n) {
int m = n;
for (int j = 2; j <= sqrt(n); j++) {
while (m % j == 0) {
printf("%d", j);
if(m/j>=2)
printf("*");
m = m / j;
}
}
}
int main() {
int n;
scanf("%d", &n);
int c = fun(n);
if (c) funl(n);
else printf("不是合数");
return 0;
}
运行
直接上代码:
//方法一:朴素筛法的优化:(时间复杂度优化到O(sqrt(n))
#include<stdio.h>
#include<math.h>
int fun(int n) {
if(n<=1) return 0;
for (int i = 2; i <= n/i; i++) {//也可以用for(int i=2;i<=sqrt(n);i++)
if (n % i == 0)
return 0;
}
return 1;
}
int main() {
int n;
while (scanf("%d", &n) != EOF) {
if (fun(n))
printf("yes\n");
else printf("no\n");
}
return 0;
}
//方法二:朴素筛法(时间复杂度O(n))
//#include<stdio.h>
//#include<math.h>
//int fun(int n) {
// if(n<=1) return 0;
// for (int i = 2; i <= n/i; i++) {
// if (n % i == 0)
// return 0;
// }
// return 1;
//}
//int main() {
// int n;
// while (scanf("%d", &n) != EOF) {
// if (fun(n))
// printf("yes\n");
// else printf("no\n");
// }
// return 0;
//}
运行
总结 :代码很基础,一定掌握!