求一个算法,用文字表述就可以了

来源:百度知道 编辑:UC知道 时间:2024/06/15 04:20:42
生成一个正整数序列,这个序列中的正整数只能被质除数2,3或2和3整除。

序列头部分:2,3,4,6,8,9,12,16,18,24,27。。。。。
是质除数,5也是质数,所以不能做除数

int f(int n){
int i,j;
while(n){
if(n%2==0||n%3==0){
if(n%2==0)
n/=2;
if(n%3==0)
n/=3;
}
else break;
}
if(n==1) return 1;
else return 0;
}

void main(){
int i,j,k;
for(i=2;i<100;i++){
if(f(i))
cout<<i<<endl;
}
}

没理解你的问题。
你给出的序列中为什么 剔除了 10?

输入N;
设个循环来排除从N开始不符合条件的数字一直循环到2;
顺序放到数组中;
倒序显示

for(i=1;i<n;i++){
int a,b;
a = pow(2,i)*pow(3,i-1);
b = pow(3,i)*pow(2,i-1);
printf("%d\n%d\n",a,b);
}
基本思路就这个,2的n次方乘以3的n次方

先判断是不是能被2或3整除
能的话,在判断是否会被5整除,不能就满足条件啊
#include<stdio.h>
main( )
{
int i;
for(i=0;i<30;i++){
if(i%2==0||i%3==0){
if(i%5!=0)
printf("%d ",i);}
}
}
小于30的数里有2,3,4,6,8,9,12,16,18,24,27,28

看你要生成多少了。如果是少的话。可以用2的n次方乘上3的m次方。然后n,m从0到某个数。