从键盘输入一个数, 判断这个数是奇数还是偶数, 若为偶数, 则除以2, 直到该数变为奇数; 若为奇数则判断这个

2024-11-26 08:46:50
推荐回答(3个)
回答1:

供参考……
#include "stdio.h"//
#include "math.h"//
void main(void){
int n,i,cx;
printf("请输入一个整数:\n");
scanf("%d",&n);
printf("您输入的整数是:%d\n",n);
printf("下面开始循环求解过程!\n\n");
while(n>1){
if(!(n%2)){
printf("%d是偶数,",n);
while(!((n/=2)%2));
printf("连续除以2得奇数:%d\n",n);
continue;
}
cx=(int)sqrt(n)+1;
for(i=3;i if(!(n%i)) break;
if(i else printf("奇数%d是质数!\n",n);
printf("%dx3+1=",n);
(n*=3)+=1;
}
}

回答2:

大哥,你说的“重复以前的工作,直到得到的结果为1”什么意思?重复什么工作啊?

回答3:

#include "stdafx.h"
#include "math.h"
void main()
{
int num,temp=0;
printf("请输入一个整数: \n");
scanf("%d",&num);
temp=num;
printf("您输入的整数是:%d\n",num);
printf("下面开始循环求解过程!\n ");

while(num!=1)
{
if(num%2==0)
{
num=num/2;
temp=num;
}
else
{
for(int i=3;i<=sqrt(num);i++)
{
if(num%i==0)
{
printf("%d 不是质数\n",num);
printf("%d 的一个分解因式为:%d\n",num,i);
break;
}
}
if(num!=temp)
printf("%d 是质数\n",num);
num=3*num+1;
}
}
printf("循环求解结束!num=1\n");
}