编程题,输入一个正整数,输出它的所有质数的因子(如180的质数因子为2、2、3、3、5)

作者&投稿:采怕 (若有异议请与网页底部的电邮联系)
输入一个正整数,输出它的所有质数的因子(如180的质数因子为2、2、3、3、5)~

import java.util.*;
public class Main{
public static void main(String[]args){
Scanner str=new Scanner(System.in);
long num=str.nextLong();
String result=getResult(num);
System.out.println(result);
}
public static String getResult(long num){
int pum=2;
String result="";
while(num!=1){
while(num%pum==0){
num=num/pum;
result=result+pum+"";
}
pum++;
}
return result;
}
}
扩展资料:while循环开始后,先判断条件是否满足,如果满足就执行循环体内的语句,执行完毕后再回来判断条件是否满足,如此无限重复;直到条件不满足时,执行while循环后边的语句。简单来讲就是说while循环是先判断后循环, 判断如果满足条件进入循环 本次循环后再次判断 。
举个例子:

do-while循环与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真, 如果为真则继续循环;如果为假, 则终止循环。因此do-while循环至少要执行一次循环语句。 简单来讲就是说while循环是先循环后判断 。
举个例子:

总结:while循环是先判断后循环 ,而do–while循环是先循环后判断。

int prime(int x)
{
int i;
for (i = 2; i <= x / 2; i++)
if (x%i == 0)
return 0;

return 1;
}

import java.util.*;

public class Main{

public static void main(String[]args){

Scanner str=new Scanner(System.in);

long num=str.nextLong();

String result=getResult(num);

System.out.println(result);

}

public static String getResult(long num){

int pum=2;

String result="";

while(num!=1){

while(num%pum==0){

num=num/pum;

result=result+pum+"";

}

pum++;

}

return result;

}

}

扩展资料:

while循环开始后,先判断条件是否满足,如果满足就执行循环体内的语句,执行完毕后再回来判断条件是否满足,如此无限重复;直到条件不满足时,执行while循环后边的语句。简单来讲就是说while循环是先判断后循环, 判断如果满足条件进入循环 本次循环后再次判断 。

举个例子:

do-while循环与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真, 如果为真则继续循环;如果为假, 则终止循环。因此do-while循环至少要执行一次循环语句。 简单来讲就是说while循环是先循环后判断 。

举个例子:

总结:while循环是先判断后循环 ,而do–while循环是先循环后判断。



定义整数变量n,k,i;
输出信息"请输入一个整数:";
读取输入的整数到n;
判断n合法性(n>1),否则重复上面两步;
计算k=sqrt(n);
计i=1 to k,判断i是否整除n,
如果是,判断i是否质数,
还如果是,输出i;
直至循环结束。

其中,判断一个数是否质数,
可以写一个子函数,
判断2~i-1中的数,是否想除i。

找出一个质数后除以它再找质数

import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
long num = sc.nextLong();
System.out.println(getResult(num));

}
public static String getResult(long num){
int a = 2;
String result = "";
while(num != 1){
while(num%a ==0){
num = num / a;
result = result + a +" ";
}
a++;
}
return result;
}
}


编写程序,从键盘输入一个3位的正整数,输出它的百位数,十位数和个位数...
void main(){int a;int b,c,d;\/\/各个位数上的数字printf("请输入一个三位数:");scanf("%d",&a);b=a\/100; \/\/百位c=(a-b*100)\/10; \/\/十位d=a%10;

c++编程,输入一个正整数(任意位数),倒序输出的程序怎么编写?
第一种:将第一种用for语句实现:int n;printf("请输入一个 整数");scanf("%d",&n);for(n;n!=0;n\/=10)printf("%d",n%10);printf("\\n");第二种:上面的方法存在多次调用printf函数的问题,而调用函数是需要额外的空间的时间的,这将会降低程序的运行速度。虽然在这里的调用次数并不多...

C语言题目:输入一个正整数n(1<n≤10),再输入n个正数,输出平均值(保留两 ...
%d",&n);printf("Please input %d integers:",n); \/\/移动到循环外for(i=0;i<n;i++) \/\/这里多了分号{scanf("%d",&a[i]);sum+=a[i];}average=sum\/n; \/\/sum是float才能得到小数printf("averge=%.2f\\n",average); \/\/变量名for(i=n-1;i>=0;i--)printf("%d ",a[i])...

编写一个程序,输入正整数n,计算s=1+(1+2)+(1+2+3)+...+(1+2+3+...
include <stdio.h> int fun(int n);void main(){ int i,n,sum=0;printf("请输入n:");\/\/输入数字,如10 scanf("%d",&n);for (i=1;i<=n;i++){ sum+=fun(i);} printf("sum=%d\\n",sum);} int fun(int n)\/\/计算和 { if(n==1)return 1;return n+fun(n-1);} ...

c++输入一个正整数n,求第n个斐波那契数
<iostream> \/\/控制台操作头文件int main() \/\/主函数{int n,s,i; \/\/第n项值为s,i是循环变量 do{printf("请输入一个正整数(0退出):");\/\/输入提示 scanf("%d",

C++程序问题,输入正整数n,在n×n的矩阵内按下表规律填数并输出:(以3...
你的程序应该这样改:include<stdio.h>#include<stdlib.h>int main(){ void f(int); int n; printf("请输入一个正整数:\\n"); scanf("%d",&n); f(n); return 0;}void f(int n){ int b,i=1,j,k=0,l=0,m=1;int **a;a = (int **)malloc(size...

C语言编程,任意输入一个五位正整数,逆序输出每一位上的数 如输入54321...
p++;}\/* 程序的输出顺序为 10 -> 8 -> 6 -> 4 -> 2 递归步骤解释 1: 第一次执行ser函数,numbser = 12345判断数字大于9,将int(1234)再次执行函数 ps: (int)\/(int) 结果为int 2: 待执行ser函数后,输出结果个位数 12345 % 10 = 5 3: 第二次执行ser函数...类比步骤1 4: 待...

两道C语言编程题:一、输入一个整数,求它的位数以及各位数字之和。_百...
一:include <stdio.h> void main(){ int a,i=0,sum=0;scanf("%d",&a);while(a){ sum+=(a%10);\/\/sum是个位数之和 a\/=10;i++;\/\/i为位数 } printf("%d位数, 各位数字之和为%d\\n",i,sum);} 二:include <stdio.h> int issxh(int number){ int x1,x2,x3;x1=number\/...

【c语言】程序功能:从键盘输入一个大于2的正整数n,求解并输出大小最接...
两个for循环分别向下和向上查找得到最近的素数n0和n1,判断其与n是否最近,如果距离相同则同时输出。include "stdafx.h"include <iostream> using namespace std;bool isp(int x){ for (int i = 2; i <= sqrt(x); i++){ if (x%i == 0)return false;} return true;} int main(){ in...

求一个C语言程序:输入正整数,要求以相反数顺序输出该数。如输入1234,输...
int main(int argc, char* argv[]){ int input;int ret,num;printf("Input a int:");scanf("%d",&input);for(;;){ num=input%10;input=input\/10;printf("%d",num);if(input<10){ printf("%d\\n",input);break;} } return 0;} 例子输出。当然实际上,你要把printf的部分保存起来...

宿迁市18780046872: 编程,输入一个正整数,输出它的所有质数因子(如180的质数因子为2、2、3、3、5) -
乾婵腰痛: 可以参考下面的代码: #include <stdio.h> #include <math.h> bool prim(int n) { if(n <= 1) return false;//不是素版数 int i; int m = int(sqrt(n));// for(i = 2;i<=m;i++) if(n % i == 0)//有没有能整权除的 return false; return true; } void main() { int i; int a=2; int b; ...

宿迁市18780046872: 编程,输入一个10进制正整数,然后输出它所对应的八进制、十六进制数. -
乾婵腰痛: #include <iostream> using namespace std;void Decimal2Octal(int num) {if(num){Decimal2Octal(num/8);cout<<num%8;} }void Decimal2Hex(int num) {int i=0;if (num){Decimal2Hex(num/16);i=num%16;if (i>=10)cout<<static_cast<char>('...

宿迁市18780046872: 1.设计一个程序,实现输入一个正整数,计算并输出它的所有约数. -
乾婵腰痛: 1 2 3 4 5 6 7 8 9 10 11 12 13#include <stdio.h> intmain() {intn;scanf("%d", &n);inti = 1;for(; i<=n; ++i){if(!(n%i))printf("%d ", i);}return0; }

宿迁市18780046872: 编写一个完整的源程序完成如下任务:从键盘输入一个正整数,然后输出 -
乾婵腰痛: #include <stdio.h> void main() {int num; printf("Enter a positive integer:"); scanf("%d", &num); printf("Number %d Factors:", num); for(int i= 1; i <= num ; i++) if(num%i==0) printf("%d ", i); printf("\n"); }

宿迁市18780046872: C编程 输入一个不超过10的9次方的正整数,输出他的位数.例如12735的位数是5.不要是用任何数学函数,只能用四则运算和循环语句实现 -
乾婵腰痛:[答案] #include int main () { int num,t; int sum=0; printf("输入一个正整数,范围1到1000000000:"); scanf("%d",&num); t=num; if(num<1||num>1000000000) { printf("不在正确范围,系统退...

宿迁市18780046872: java题:任意输入一个正整数,正序输出它的每一位 -
乾婵腰痛: import java.util.Scanner;public class Main {public static void main(String[] args) throws IOException{Scanner scan = new Scanner(System.in);System.out.println("输入一个整数:");int num = scan.nextInt();char[] numChar = Integer.toString(num).toCharArray();for(int i = 0;iSystem.out.println(numChar[i]); } } }

宿迁市18780046872: c语言题目 键盘输入一个正整数,输出它的平方根和立方根,中间空格空开,其中平方根保留小数点后三位. -
乾婵腰痛: #include <stdio.h> #include <math.h> int main() {int n;printf("Please input a integer number:");scanf("%d",&n);printf("%d square root is:%5.3f %d cube root is:%5.3f\n",n,sqrt((double)n),n,pow((double)n,1.0/3.0));return 0; }

宿迁市18780046872: 2.编程计算并输出阶乘的值(程序名A2.C).(1)当在主函数中输入一个正整数时,将输出它的阶乘值,输出格式如:5!=120.(2)阶乘的计算由一个函数完成. -
乾婵腰痛:[答案] #include int a(int n) { int m=1; while(n>=1) { m*=n; n--; } return m; } int main() { int n; scanf("%d",&n); if(n>0) { printf("%d!=%d\n",n,a(n)); } return 0; }

宿迁市18780046872: 编写一个C程序,读入一个正整数n(n不大于10000),输出所有连续正整数的和等于n的情况注意对于给定的n不一定有答案,如4,6就无解. 排除只有一个数的... -
乾婵腰痛:[答案] #include main() { int num; printf("请输入小于10000的数字\n"); scanf("%d",&num); if(num>10000) printf("你输入有误\n"); else { if(num%3!=0) printf("无解\n"); else printf("数字为%d,%d,%d\n",num/3-1,num/3,num/3+1); } }

宿迁市18780046872: 如何用C语言编写程序输入一个正整数n,编程序输出从2到n间的所有完数. -
乾婵腰痛: C语言实现如下:#include<stdio.h> void main() { int i,j,k,n; scanf("%d",&n); //输入一个正整数n for(i=2;i<=n;i++) { k=0; for(j=1;j<=i-1;j++) if(i%j==0) k+=j; if(k==i) printf("%d\n",i); //判断i的所有真因子之和是否等于i,是则输出i. } }注意:建议n...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网