C语言,输入一个正整数,按由大到小的顺序输出它的所有质数的因子(如180=5*3*3*2*2)

 1 #include <iostream>
 2 using namespace std;
 3
 4 int main()
 5 {
 6     long num;
 7
 8     while(cin >> num){
 9         if(num == 1){
10             cout << num << endl;
11             continue;
12         }
13
14         for(int i = 2; i <= num; ++i){
15            if(num%i == 0){
16                num = num/i;
17                cout << i << " ";
18                i--;//遇到一个质数,那么该质数可能会被整除多次
19            }
20         }
21         cout << endl;
22     }
23
24     return 0;
25 }

时间: 2024-12-21 20:09:59

C语言,输入一个正整数,按由大到小的顺序输出它的所有质数的因子(如180=5*3*3*2*2)的相关文章

提示用户输入一个正整数n,如果n=5,就输出下列图形,其他n值以此类推

/* ***** **** *** ** * */ #include <stdio.h> int main() { // 1.定义一个变量存储用户输入的值 int n = 0; // 一定要初始化 // 2.判断n值合不合理 while (n <= 0) { // 2.1 提示用户输入正整数 printf("请输入一个正整数:\n"); // 2.2 接收输入的数据 scanf("%d", &n); } // 3.输出图形 for (int

任意输入三个整数,按从大到小的顺序输出

#include <stdio.h> void main(){ int a,b,c,t; printf("请输入三个整数:\n"); scanf("%d,%d,%d",&a,&b,&c); if(a<b) { t=a; a=b; b=t; } if(a<c) { t=a; a=c; c=t; } if(b<c) { t=b; b=c; c=t; } printf("从大到小的排序为:%d,%d,%d&q

c语言:利用指针变量,用函数实现将3个整数按从大到小的顺序输出

利用指针变量,用函数实现将3个整数按从大到小的顺序输出. 解:程序: #include<stdio.h> void swap(int *ptr1, int *ptr2) { int temp = *ptr1; *ptr1 = *ptr2; *ptr2 = temp; } void exchange(int *q1, int *q2,int *q3) { void swap(int *ptr1, int *ptr2); if (*q1 < *q2) { swap(q1, q2); } if

JavaScript-判断指定日期是一年中第几天-按照从大到小的顺序输出

1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head> 7 <body> 8 <script> 9 /** 10 <=10 10% 11 <=10 10% + 10~20 7.5% 12 <=10 10

编程题:指针变量作函数参数,将两个整数按由大到小的顺序输出。

分析:通过指针变量作函数参数,无需返回值和全局变量,主调函数就可以使用被调用函数改变的值. #include<stdio.h> void swap(int *p1,int *p2) { int p; p=*p1; *p1=*p2; *p2=p; } void main() { int a=3,b=4; int *ptr1,*ptr2; ptr1=&a;ptr2=&b; if(a<b) swap(ptr1,ptr2); printf("%d,%d\n",

按照从大到小的顺序输出四位数中的个位+百位=十位+千位

public class TestDui { public static void main(String[] args) { //计数器的作用,统计数量 int count = 0; for(int i = 9999;i > 999;i--){ //注意从大到小的排列,所以从9999开始 int ge = i % 10; int shi = i / 10 % 10; int bai = i / 10 /10 %10; int qian = i / 1000; if(ge + bai == sh

codevs:2849 素数判定 3:输入一个正整数x(3&lt;=x&lt;=100000),判断x是否是质数,如果是质数则输出信息“prime”,否则输出“composite”。

#include<iostream>#include<cstdio>#include<cmath>using namespace std;int a[2];int main(){ int p,b=0,flag=1; scanf("%d",&p); for(int i=2;i<=p/2;i++) { if(p%i==0) { printf("composite"); return 0; } } printf("

输入三个数字,按从大到小的顺序输出

import java.util.Scanner;public class 比大小 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc =new Scanner(System.in); int x,y,z; System.out.println("请输入x的值:"); x= sc.nextInt(); System.out.println("请输入y的

指针变量:输入a和b两个整数,按先大后小的顺序输出a和b。

#include <stdio.h>int main() { int *p1,*p2,*p,a,b;   printf("please enter two integer numbers:");   scanf("%d,%d",&a,&b);                   // 输入两个整数   p1=&a;                                  // 使p1指向变量a   p2=&b;