解题思路:质数通过欧拉筛打表判断,非质数利用递归不断分解到它为质数为止
注意事项:
参考代码
#include<stdio.h>
#include<string.h>
#define maxn 50000
int prime[maxn];
int visit[maxn];
void Prime(int n){
memset(visit,1,sizeof(visit));
memset(prime,0,sizeof(prime));
int i,j;
int count=0;
for(i=2;i<=n;i++){
if(visit[i]) prime[count++]=i;
for(j=0;j<count&&prime[j]*i<=n;j++){
visit[prime[j]*i]=0;
if(i%prime[j]==0) break;
}
}
}
void primefactor(int num){
if(visit[num]){
printf("%d\n",num);
return ;
}
int i;
for(i=2;i<num;i++){
if(num%i==0){
printf("%d*",i);
break;
}
}
primefactor(num/i);
}
int main(){
int a,b,i,j;
scanf("%d%d",&a,&b);
Prime(b);
for(i=a;i<=b;i++){
printf("%d=",i);
primefactor(i);
}
return 0;
}
:
0.0分
0 人评分
用筛法求之N内的素数。 (C语言代码)浏览:711 |
简单的a+b (C语言代码)浏览:457 |
A+B for Input-Output Practice (VII) (C语言代码)浏览:566 |
蚂蚁感冒 (C语言代码)浏览:816 |
局部变量作函数返回值的问题浏览:1029 |
The 3n + 1 problem (C语言代码)浏览:550 |
模拟计算器 (C语言代码)浏览:2366 |
C二级辅导-等差数列 (C语言代码)浏览:891 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:710 |
A+B for Input-Output Practice (IV) (C语言代码)浏览:489 |