10 条题解
-
5
#include <bits/stdc++.h> using namespace std; int main () { int num; cin >> num; for (int i = 2; i <= num; i++) { //核心代码 while (num != i) { //先确定num不等于2 if (!(num % i)) { //当num / i没有余数时,说明i是num的一个质数 cout << i << "*"; //输出i num /= i; //取num/i整数部分 } else { break; //然后跳出,重新来,此时num变了,i也变成2了,因为重新开始 } } } cout << num << endl; system("pause"); return 0; }
-
0
python简单易懂,先预处理1000以内素数,再分解,1要特判
prim=[] prim.append(2) prim.append(3) for i in range(5,1001): flag=1 for j in range(2,int(i**0.5)+1): if i%j==0: flag=0 break if flag : prim.append(i) n=int(input()) t=0 flag=False f=(n==1) while n>=2 or t>1000: if flag==True: print("*",end="") flag=False if n%prim[t]==0: n/=prim[t] print(prim[t],end="") flag=True else: t+=1 if f==True: print(1)
-
-3
#include <iostream> using namespace std; bool flag=true; int x; int main() { cin>>x; for (int i=2;i<=x+1;) { if (x%i==0) { if (flag==true) { cout<<i; flag=false; }else { cout<<"*"<<i; } x = x/i; if (x==1) { break; } }else { if (x==1) { cout<<1; break; }else { i+=1; } } } return 0; }
- 1
信息
- ID
- 69
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- 递交数
- 2205
- 已通过
- 611
- 上传者