cdoj 1246 每周一题 拆拆拆~ 分解质因数
生活随笔
收集整理的這篇文章主要介紹了
cdoj 1246 每周一题 拆拆拆~ 分解质因数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
拆拆拆~
Time Limit: 20 Sec
Memory Limit: 256 MB
題目連接
http://acm.uestc.edu.cn/#/problem/show/1246
Description
給你一個數x,你有兩個操作
1.分解質因數,如果x是一個合數,那么就將x分解質因數,然后進入操作2,否則輸出這個數
2.將分解質因數中的乘號變成加號,執行操作1
問你最后輸入多少?
Input
多組數據,大概10000組,每組數據僅包含一個正整數n(1<=n<=10^9)
Output
對于每組數據,輸出一個整數,表示最后的數字。如果無法得到最后的數字,輸出-1
Sample Input
1 2 4 6 8 10Sample Output
1 2 -1 5 5 7HINT
?
題意
?
題解:
暴力分解質因數,然后模擬就好了
復雜度sqrt(n)*logn(大概是這個
代碼:
#include<iostream> #include<stdio.h> using namespace std;int main() {int n;while(scanf("%d",&n)!=EOF){int now = n;int sum = 0;int flag = 0;int pre = 0;while(1){pre = now;sum = 0;flag = 0;for(int i=2;i*i<=now;i++){if(now%i==0)flag = 1;}if(flag == 0){flag = now;break;}for(int i=2;i*i<=now;i++){while(now%i==0){flag = 1;now/=i;sum+=i;}if(now==1)break;}if(now>1){sum+=now;now = 1;}if(pre==sum){flag = -1;break;}now = sum;}printf("%d\n",flag);} }?
轉載于:https://www.cnblogs.com/qscqesze/p/5006511.html
總結
以上是生活随笔為你收集整理的cdoj 1246 每周一题 拆拆拆~ 分解质因数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wyd1520 写的ASP高亮类
- 下一篇: 电脑登录斗鱼显示无法连接服务器,斗鱼电脑